
페르시아 TTS는 처음에 학사 학위 학위 졸업 프로젝트로 개발 한 엔진 및 반응 앱 간단한 텍스트-스피치 합성 엔진 및 반응 앱입니다.
그러나이 프로젝트는 시간이 지남에 따라 점진적인 개선을위한 것입니다.


![]()
![]()
![]()
Persian-TTS 앱은 React Native에 의해 구동되므로 앱을 올바르게 컴파일하려면 필요합니다. Android 버전을 컴파일하려면 컴퓨터에 적절한 Android SDK를 사용하는 것이 필수이며 명백하게 iOS Varient를 컴파일하는 것은 MACOS 운영 시스템 구동 기계에 작동하는 Xcode 사본 및 기능적 Cocoapods 종속성 관리 도구가 필요합니다.
또한 NPM에 액세스하고 프로젝트의 종속성을 다운로드하기위한 종속성 관리 도구가 필요합니다. 이 프로젝트에는 원사가 사용되지만 NPM 또는 기타 도구도 사용할 수 있습니다.
먼저 소스 코드를 복제하여 얻을 수 있습니다.
git clone [email protected]:amfolio/persian-tts.git cd ios
pod install 그런 다음 패키지의 디렉토리로 이동하여 yarn install 또는 npm install 사용하여 종속성을 설치하십시오.
Android 및/또는 iOS 운영 체제의 에뮬레이터에서 앱을 시작하려면 다음 명령을 사용할 수 있습니다.
react-native run-androidreact-native run-ios이 프로젝트의 구조는 다른 많은 반응 프로젝트 구조와 동일합니다. 아래는 주요 구조의 큰 그림입니다.
곧 프로젝트는 "합성 합성"apprach를 사용하여 목표를 달성합니다. 페르시아어로 "자음+모음"쌍을 동의함으로써 무제한 단어 세트를 구성 할 수 있습니다. 여기에서 용감 하게이 쌍을 단순히 "음절"이라고 부릅니다.
합성 작업을 수행하기 위해이 프로젝트는 처음에는 169 음절 목소리 세트를 가지고 있으며, 내 자신의 목소리로 다시 코딩되어 있습니다 (따라서 전문적인 내레이션이 아님). 이 숫자는 벨로우어로 다루어집니다.
| 음성 유형 | 해당 파일 계산 |
|---|---|
| 모음 | 6 |
| 조용한 자음 | 23 |
| 음절 (자음+모음) | 138 |
| 공간 | 2 |
| 총 | 169 |
그런 다음 FFMPEG 라이브러리를 사용하여 음절을 연결함으로써 합성 프로세스가 가능하며 반응 신용 -FFMPEG 래퍼입니다. 다음은 무슨 일이 일어나는지에 대한 빠른 스키마입니다.
첫 번째 단계에서, 페르시아 입력의 대응하는 발음은 TextTophonems 유틸리티 기능을 사용하여 생성됩니다.
const input = "سلام" ; // means "Hello" in persian
const output = textToPhonems ( input ) ; // ["sa", "lā", "m"];1 단계의 결과는 phonemstoffmpeg 유틸리티 기능을 통과하고 유효한 FFMPEG Concatnation 명령을받습니다.
const ffmpeg = phonemsToFFMpeg ( output ) ;그리고 결과는 다음과 같습니다.
ffmpeg
-I sa.wav -I lā.wav -I m.wav
-filter_complex ‘[0:0][1:0][2:0]concat=n=3:v=0:a=1[out]’
-map ‘[out]’ output.wav응용 프로그램은 React-Native-FFMPEG를 사용하여 FFMPEG를 호출하고 다음 단계는 무대 뒤에서 수행됩니다.
| 동의하기 전에 | ||
![]() | ![]() | ![]() |
| SA.WAV | lā.wav | M.Wav |
| 연결 후 | ||
![]() | ||
| output.wav | ||
React Native-Sound 라이브러리 덕분에 출력 오디오 파일은 iOS 및 Android 플랫폼에서 재생됩니다. 번들 리소스를 읽고 샌드 박스/SD 카드 위치로 전송하는 것은 반응 신용 FS 덕분에 가능합니다.
특별한 감사는 저의 프로젝트 감독 인 모하마드 타 히리 박사 에게이 주제에 접근 할 것이라는 확신을 주었고 가능한 최선의 단계를 안내했습니다. 그 없이는 아마도 그런 학문적 연구에 결코 들어 가지 않았을 것입니다.
다음 큰 감사는 최첨단 기술을 다른 사람들과 관대하게 공유하는 개발자 커뮤니티에 감사합니다. 이 커뮤니티 덕분에 바퀴를 재창조하는 것이 더 이상 필요하지 않습니다.
다음은 내 개발 경로에서 저를 무한대로 도와 준 도서관의 짧은 목록입니다.
이 저장소는 처음에 페르시아어 오픈 소스 텍스트 음성 솔루션을위한 최소한의 노력으로 구성됩니다. 보고서에서 버그 수정 및 개선에 이르기까지 모든 기여에 감사드립니다.
프로젝트에 더 많은 목소리를 더함으로써 기여도도 잘 환영하며 Voices.json에서 귀하의 이름을 언급 할 수도 있습니다.
필요한 경우 풀 요청을 보내 주시기 바랍니다.