はじめに
EmotiVoiceは、NetEaseYoudaoによって開発された、複数の音声と感情キューコントロールを備えた音声合成(TTS)エンジンです。このオープンソースのTTSエンジンは、英語と中国語をサポートし、2000種類以上の音声を持ち、感情合成機能により、喜怒哀楽などの複数の感情を持つ音声を作成することができます。使いやすいWEBインターフェースとスクリプトインターフェースの一括生成結果を提供します。
機能一覧
WEBインターフェースとスクリプトバッチプロセッシングインターフェースの提供
感情合成のサポート
複数のサウンドオプション
中国語と英語の合成をサポート
ヘルプの使用
GitHubリポジトリでインストールや使い方をチェックしよう。
EmotiVoiceを試すためのDockerイメージの実行
学習済みモデルなどの追加情報をダウンロードするには、Wikiページを参照してください。
WeChatグループに参加してフィードバックを交換する
コミュニティからのご要望にお応えして、このたびサウンドクローン機能そして、2つのチュートリアル例を提供している!
注釈
- この機能には、少なくとも1つの Nvidia GPUグラフィックス .
- 目標音データが重要!詳しい要件は次のセクションで説明する。
- 現在のところ、この機能は中国語と英語のみでサポートされています。2カ国語を話す音色モデルを手に入れよう.
- EmotiVoiceはエモーショナル・コントロールに対応していますが、音声で感情を伝えたいのであれば、トレーニング・データもエモーショナルにする必要があります。
- のEmotiVoiceは、あなたのデータのみを使用してトレーニングした後、あなたのデータのみを使用してトレーニングすることができます。原音は変更される.つまり、新しいモデルはあなたのデータに合わせて完全にカスタマイズされます。EmotiVoiceの2000以上のオリジナル音声を使用したい場合は、事前にトレーニングされたオリジナルモデルを使用することをお勧めします。
トレーニング・データの詳細要件
- 音声データは高音質で、一人の声としてはクリアで歪みのないものである必要があります。長さやセンテンス数は当面必須ではなく、数センテンスでも構いませんが、100センテンス以上を推奨します。
- 各音声に対応するテキストは、音声の内容と厳密に一致する必要がある。トレーニングの前に、G2Pを使用して生テキストを音素に変換する。この際、ポーズ(sp*)やポリフォニック変換の結果は、トレーニングの質に大きな影響を与える。
- 音声に感情を伝えたいのであれば、トレーニングデータも感情的なものにする必要があります。また、**タグ「プロンプト」の内容は、音声ごとに変更する必要があります。プロンプトの内容は、感情、発話速度、話し方など、どのような形式のテキストでもかまいません。
- そして
データディレクトリ
ディレクトリの2つのサブディレクトリがあります。電車
歌で応える妥当
.各サブディレクトリにはデータリスト.jsonl
ファイルで、各行がフォーマットされている:{"key": "LJ002-0020", "wav_path": "data/LJspeech/wavs/LJ002-0020.wav", "speaker": "LJ", "text": ["", "[IH0]", "[N]", "engsp1", "[EY0]", "[T]", "[IY1]", "[N]", "engsp1", "[TH]", "[ER1]", "[T]", "[IY1]", "[N]", "."."], "original_text": "In 1813", "prompt": "common"}.
.
トレーニングステップの分布。
中国語については データベイカー・レシピ英語版をご参照ください:LJSpeechレシピ.以下はその要約である:
- トレーニング環境の準備 - 設定は一度だけでよい。
# conda環境を作成する conda create -n EmotiVoice python=3.8 -y condaでEmotiVoiceを起動する #を実行する。 pip install EmotiVoice[train] #または git clone https://github.com/netease-youdao/EmotiVoice pip install -e .[トレイン]
- 協議 トレーニング・データの詳細要件 データ準備の実行、推奨参考例データベイカー・レシピ 歌で応える LJSpeechレシピメソッドとスクリプトを
- 次に、以下のコマンドを実行して、トレーニング用のディレクトリを作成する:
python prepare_for_training.py --data_dir --exp_dir <実験ディレクトリ
.交換<データ・ディレクトリ
には、準備されたデータ・ディレクトリの実際のパスを指定する。<実験ディレクトリ
は実験ディレクトリへの希望するパスである。 - サーバー構成やデータに応じて変更可能
/config/config.py
.修正が完了したら、以下のコマンドを実行してトレーニングを開始する。torchrun --nproc_per_node=1 --master_port 8018 train_am_vocoder_joint.py --config_folder /config --load_pretrained_モデル True
.(このコマンドは、指定された設定フォルダを使用して学習プロセスを開始し、指定された事前学習済みモデルをロードします)。この方法は現在Linuxで利用可能ですが、Windowsでは問題が発生する可能性があります! - トレーニングのステップをいくつか完了した後、チェックポイントを選択し、以下のコマンドを実行して、結果が期待通りであることを確認する:
python inference_am_vocoder_exp.py --config_folder exp/DataBaker/config --checkpoint g_00010000 --test_file data/inference/text
.を修正することをお忘れなく。データ/推論/テキスト
のスピーカー・フィールドの内容です。この結果にご満足いただけましたら、ご自由にお使いください!デモ・ページの修正版を提供します。demo_page_databaker.py
DataBakerでクローニングした後のトーンの効果をぜひ体験してください。 - 結果が満足のいくものでなければ、トレーニングを続けるか、データや環境をチェックすることができます。もちろん、コミュニティで議論したり、問題を提出することもできます!
ランタイムリファレンス情報。
参考のため、以下のランタイム情報とハードウェア構成情報を提供する:
- Pipパッケージのバージョン: Python 3.8.18、torch 1.13.1、cuda 11.7
- GPUカードモデル:NVIDIA GeForce RTX 3090、NVIDIA A40
- トレーニングにかかる時間:1万歩のトレーニングに約1~2時間かかる。
GPUグラフィックカードなしで、CPUだけでトレーニングすることも可能です。朗報をお待ちください!