Summerttsは、2023年の夏を迎えることを記念するために使用されます
説明します
- Summerttsは、独立してコンパイルされた音声合成プログラム(TTS)です。ネットワークを必要とせずにローカルに実行でき、追加の依存関係はありません。ワンクリックコンピレーションは、中国語と英語の音声統合に使用できます。
- Summerttsの基礎となるコンピューティングライブラリは、Template-Defined関数のセットであるEigenを使用しています。ほとんどの場合、ヘッダーファイルのみを含める必要があるため、このプロジェクトには他の依存関係がなく、C ++環境で独立して実行できます。
- このプロジェクトは、Eigenが提供するMatrix Libraryを使用してニューラルネットワークのオペレーターを実装しており、Pytorch、Tensorflow、NCNNなどの他のNNオペレーティング環境に依存する必要はありません。
- このプロジェクトは編集され、Ubuntuで実行されます。 Android、Raspberry Piなどの他のLinuxのようなプラットフォームには、大きな問題はありません。それらはWindowsでテストされておらず、少し変更が必要になる場合があります。
- このプロジェクトのモデルは、音声合成アルゴリズムのvitsに基づいており、C ++エンジニアリングに基づいています。
- このプロジェクトは、MITライセンスに適用できます。このプロジェクトに基づいた開発、ユーザー、または組織は、MITライセンスに従ってください:https://mit-license.org
ログを更新します
- 2024-12-14:ライセンス情報をMITライセンスに追加:https://mit-license.org
- 2023-06-16:高速な英語の音声合成モデルを追加するために更新されました:single_speaker_english_fast.bin、または次のネットワークディスクでは、速度が高速で、合成された音質が大幅に低下しません。
リンク:https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vq?pwd=5h抽出コード:2d5h - 2023-06-15:純粋な英語の発音統合をサポートし、最新のコードを同期する必要があります。次のネットワークディスクでモデルファイルを使用します:Single_speaker_english.bin、そして次の方法で英語の発音を合成します。
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
ネットワークディスクのパスは次のとおりです。以前の中国の発音の統合と使用は影響を受けません。このアップデートは純粋な英語の発音統合のみをサポートしており、中国の混合英語は当面の間それをサポートしていないことに注意する必要があります。
リンク:https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vq?pwd=5h抽出コード:2d5h - 2023-06-09:中規模のシングルスピーカーモデルが追加されました:single_speaker_mid.bin、これは以前のモデルよりもわずかに遅いですが、合成された音質は良くなっているようです(耳に敏感ではなく、気分が良くなります。心理的効果:pです)。コードを更新する必要はありません。以前のネットワークディスクにsingle_speaker_mid.binをダウンロードして使用するだけです。
- 2023-06-08:test/main.cppを変更して、ニューラインとテキスト全体の統合をサポートする
- 2023-06-03:FIXは昨日のバージョンでエラーがあります。テストと手がかりを提供してくれた熱狂的なネチズンテレンに感謝します。コードの更新のみが必要であり、モデルを更新する必要はありません。
- 2023-06-02:ポリフォニック発音合成の精度が大幅に改善されました。 Baidu Netdiskでは、改善されたポリフォニック発音とテキストの正則化(テキスト正規化)を使用するために、新しいモデルが必要です。今日の更新されたコードは以前のモデルを使用できません。そうしないと、クラッシュにつながる可能性があります
- 2023-05-30:フロントエンドテキストの正規化モジュールとして統合されたウェットテクスト処理、数字、通貨、温度、日付などの正しい発音統合を大幅に改善します。
- 2023-5-23:新しいアルゴリズムの使用により、単一スピーカーの音声合成速度が大幅に向上しました。
- 2023-4-21:初期作成
使用する手順
このプロジェクトのコードをローカル、できればUbuntu Linux環境をクローニングする
次のBaiduネットワークディスクアドレスからモデルをダウンロードし、このプロジェクトのモデルディレクトリに入れます:リンク:https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h抽出コード:2d5h
モデルファイルが配置された後、モデルディレクトリ構造は次のとおりです。
モデル/
├··ックスmulti_speakers.bin
├)single_speaker_mid.bin
├──single_speaker_english.bin
├)single_speaker_english_fast.bin
└··ックスsingle_speaker_fast.bin
ビルドディレクトリを入力し、次のコマンドを実行します。
cmake ..
作る
コンパイルが完了すると、TTS_TESTエグゼクティアがビルドディレクトリで生成されます。
次のコマンドを実行して、中国の音声合成(TTS)をテストします。
./tts_test ../test.txt ../models/single_speaker_fast.bin out.wav
次のコマンドを実行して、英語の音声合成(TTS)をテストします。
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
このコマンドラインで:
最初のパラメーターは、スピーチのために合成する必要があるテキストを含むテキストファイルへのパスです。
2番目のパラメーターは、前述のモデルへのパスです。ファイル名の先頭にあるシングルとマルチは、モデルに単一のスピーカーと複数のスピーカーが含まれているかどうかを示します。推奨される単一スピーカーモデル:single_speaker_fast.bin、合成速度はより速く、合成の音質も問題ありません。 3番目のパラメーターは、合成されたオーディオファイルです。プログラムが実行された後、プレーヤーで開くことができます。
上記のテストプログラムはtest/main.cppに実装されており、特定の合成インターフェイスは、次のようにinclude/synthesizertrn.hで定義されています。
int16_t *推奨(const string&line、int32_t sid、float lengthscale、int32_t&datalen)
インターフェイス:
最初のパラメーターは、合成されるスピーチの文字列です。
2番目のパラメーターは、スピーカーのIDを使用して音声を合成することを指定します。このパラメーターは、マルチスピーカーモデルで有効で、シングルスピーカーモデルでは0に固定されています。インターフェイスint32_t getSpeakernum()でスピーカーの数を返すことができ、有効なIDは0であり、インターフェイスに返されるスピーカーの数は1削減されます。
3番目のパラメーターの長さのスケールは、合成音声の音声速度を表し、その値が大きいほど音声速度が遅いことを示します。
合成されるテキストには、アラビアの数字と句読点を含めることができますが、このプロジェクトのテキストの正規化(TN)モジュールはまだ非常に荒れているため、英語の文字では無視されます。また、テキストの正規化(TN)モジュールはまだ非常に粗いため、異なるコンテキストでのポリフォニック文字の発音が不正確になることがあります。
フォローアップ開発
- モデルトレーニングと変換スクリプトは後で開かれます
- 将来、私たちはトレーニングし、より良い音質のモデルを提供しようとします
著者に連絡してください
- さらに質問がある場合や必要な場合は、[email protected]にメールを送信するか、WeChat:hwang_2011を追加できます。返信するために最善を尽くします。
ライセンス
- このプロジェクトは、MITライセンスに適用できます。このプロジェクトに基づいた開発、ユーザー、または組織は、MITライセンスに従ってください:https://mit-license.org
ありがたい
このプロジェクトは、ソースコードとアルゴリズムの観点から次のスキームを使用します。ここでありがとう。法的問題が発生する可能性がある場合は、それらを調整して解決するために時間内に私に連絡してください。
- 固有
- vits(https://github.com/jaywalnut310/vits)
- vits_chinese(https://github.com/uehqzxi/vits_chinese)
- MB-istft-vits(https://github.com/masayakawamura/mb-istft-vits)
- wetextprocessing(https://github.com/wenet-e2e/wetextprocessing)
- Glog(https://github.com/google/glog)
- gflags(https://github.com/gflags/gflags)
- Openfst(https://github.com/kkm000/openfst)
- 漢字からピンイン(https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba(https://github.com/yanyiwu/cppjieba)
- g2p_en(https://github.com/kyubyong/g2p)
- English-to-IPA(https://github.com/mphilli/english-to-ipa)
- このプロジェクトの中国の単一スピーカーモデルは、オープンソースのBiaobeiデータセットトレーニングに基づいており、マルチスピーカーモデルはオープンソースのデータセットAishell3トレーニングに基づいており、英語の単一スピーカーモデルはLJスピーチデータセットに基づいています。