
ペルシャTTSは、私が最初に学士号卒業プロジェクトとして開発したシンプルなテキストからスピアの合成エンジンと反応アプリです。
ただし、このプロジェクトは、時間の経過とともに徐々に改善されることを目的としています。


![]()
![]()
![]()
Persian-TTSアプリはReactネイティブを搭載しているため、アプリを適切にコンパイルするために必要になります。 Androidバージョンをコンパイルするには、マシンに適切なAndroid SDKを使用することは必須であり、iOSバリエンツをマコーオペレーティングシステムを搭載したマシンに作業Xcodeコピーと機能的なココアポッド依存管理ツールを使用する必要があります。
また、NPMにアクセスしてプロジェクトの依存関係をダウンロードするための依存関係管理ツールが必要です。 Yarnはこのプロジェクトで使用されますが、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ライブラリとそれがReact-Native-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 Libraryのおかげで、出力オーディオファイルはiOSプラットフォームとAndroidプラットフォームの両方で再生されます。バンドルリソースを読み、それらをサンドボックス/SDカードの場所に転送することも、React-Native-FSのおかげで可能です
特別な感謝は、私のプロジェクトのディレクターであるMohammad Taheri博士に行きます。MohammadTaheri博士は、この主題にアプローチする自信を与え、それを可能にするための最良のステップを案内してくれました。彼がいなければ、私はおそらくそのような学術研究に入ることはなかったでしょう。
次の大きな感謝は、最先端のテクノロジーを他の人と寛大に共有している開発者コミュニティに感謝します。このコミュニティのおかげで、ホイールを再発明することはもう必要ではありません。
これは、私の開発パスで私を無限に助けてくれた図書館の短いリストです。
このリポジトリは、最初はペルシャ語のオープンソーステキストからスピーチのソリューションの最小限の努力として構築されています。 Bugfixesと改善に報告する問題からの貢献に非常に感謝しています。
プロジェクトにさらに声を追加することによる貢献も非常に歓迎されており、Voices.jsonであなたの名前を紹介することもできます。
必要性を感じている場合は、お気軽にプルリクエストを送信してください。