テキスト読み上げ Python* デモ#

テキスト読み上げデモでは、ForwardTacotron および WaveRNN モデル、または変更された ForwardTacotron および MelGAN モデルを実行して、指定する入力テキストファイルの音声ファイルを生成する方法を示します。このデモは、https://github.com/seungwonpark/melgan、https://github.com/as-ideas/ForwardTacotron、および https://github.com/fatchord/WaveRNN リポジトリーに基づいています。

どのように動作するか#

起動時に、デモ・アプリケーションはコマンドライン・パラメーターを読み取り、4 つまたは 3 つのモデルを OpenVINO™ ランタイムプラグインにロードします。デモ・パイプラインはテキストファイルを行ごとに読み取り、各行を句読点で分割します。ヒューリスティックのアルゴリズムは、文長によって、いくつかのしきい値に近い句読点を選択します。推論が完了すると、アプリケーションは 22050 Hz のサンプルレートでオーディオを WAV ファイルに出力します。

実行の準備#

デモでサポートされるモデルリストは、<omz_dir>/demos/text_to_speech_demo/python/models.lst ファイルにあります。このファイルは、モデル・ダウンローダーおよびコンバーターのパラメーターとして使用され、モデルをダウンロードし、必要に応じて OpenVINO IR 形式 (*.xml + *.bin) に変換できます。

モデル・ダウンローダーの使用例:

omz_downloader --list models.lst

モデル・コンバーターの使用例:

omz_converter --list models.lst

サポートされるモデル#

  • forward-tacotron-duration-prediction

  • forward-tacotron-regression

  • wavernn-rnn

  • wavernn-upsampler

  • text-to-speech-en-0001-duration-prediction

  • text-to-speech-en-0001-generation

  • text-to-speech-en-0001-regression

  • text-to-speech-en-multi-0001-duration-prediction

  • text-to-speech-en-multi-0001-generation

  • text-to-speech-en-multi-0001-regression

: 各種デバイス向けのモデル推論サポートの詳細については、インテルの事前トレーニング・モデルのデバイスサポートパブリックの事前トレーニング・モデルのデバイスサポートの表を参照してください。

実行する#

-h オプションを指定してアプリケーションを実行すると、使用方法が表示されます:

usage: text_to_speech_demo.py [-h] -m_duration MODEL_DURATION -m_forward 
                              MODEL_FORWARD -i INPUT [-o OUT] [-d DEVICE] 
                              [-m_upsample MODEL_UPSAMPLE] [-m_rnn MODEL_RNN] 
                              [--upsampler_width UPSAMPLER_WIDTH] 
                              [-m_melgan MODEL_MELGAN] [-s_id SPEAKER_ID] 
                              [-a ALPHA] 

Options: 
  -h, --help           Show this help message and exit.
  -m_duration MODEL_DURATION, --model_duration MODEL_DURATION 
                       Required. Path to ForwardTacotron`s duration 
                       prediction part (*.xml format).
  -m_forward MODEL_FORWARD, --model_forward MODEL_FORWARD 
                       Required. Path to ForwardTacotron`s mel-spectrogram 
                       regression part (*.xml format).
  -i INPUT, --input INPUT 
                       Required. Text or path to the input file.
  -o OUT, --out OUT 
                       Optional.Path to an output .wav file 
  -d DEVICE, --device DEVICE 
                       Optional.Specify the target device to infer on; CPU, 
                       GPU or HETERO is acceptable.The 
                       demo will look for a suitable plugin for device 
                       specified.Default value is CPU 
  -m_upsample MODEL_UPSAMPLE, --model_upsample MODEL_UPSAMPLE 
                       Path to WaveRNN`s part for mel-spectrogram upsampling 
                       by time axis (*.xml format).
  -m_rnn MODEL_RNN, --model_rnn MODEL_RNN 
                       Path to WaveRNN`s part for waveform autoregression 
                       (*.xml format). 
  --upsampler_width UPSAMPLER_WIDTH 
                       Width for reshaping of the model_upsample in WaveRNN 
                       vocoder. If -1 then no reshape. Do not use with FP16 model.
  -m_melgan MODEL_MELGAN, --model_melgan MODEL_MELGAN 
                       Path to model of the MelGAN (*.xml format). 
  -s_id SPEAKER_ID, --speaker_id SPEAKER_ID 
                       Ordinal number of the speaker in embeddings array for 
                       multi-speaker model. If -1 then activates the multi- 
                       speaker TTS model parameters selection window. 
  -a ALPHA, --alpha ALPHA 
                       Coefficient for controlling of the speech time 
                       (inversely proportional to speed).

オプションの空のリストを指定してアプリケーションを実行すると、使用法メッセージとエラーメッセージが表示されます。

引数を指定して実行する例#

ForwardTacotron および WaveRNN モデルによる音声合成#

python3 text_to_speech_demo.py \ 
    --input <path_to_file>/text.txt \ 
    -o <path_to_audio>/audio.wav \ 
    --model_duration <path_to_model>/forward_tacotron_duration_prediction.xml \ 
    --model_forward <path_to_model>/forward_tacotron_regression.xml \ 
    --model_upsample <path_to_model>/wavernn_upsampler.xml \ 
    --model_rnn <path_to_model>/wavernn_rnn.xml

: wavernn_upsampler ネットワークの入力メルスペクトログラムの時間軸の幅を制御するため、このデモでは --upsampler_width パラメーターを使用できます。このオプションは、長文のパイプライン推論の速度を向上させるのに役立ちます。

text-to-speech-en-0001 モデルによる音声合成#

python3 text_to_speech_demo.py \ 
    -i <path_to_file>/text.txt \ 
    -o <path_to_audio>/audio.wav \ 
    -m_duration <path_to_model>/text-to-speech-en-0001-duration-prediction.xml \ 
    -m_forward <path_to_model>/text-to-speech-en-0001-regression.xml \ 
    -m_melgan <path_to_model>/text-to-speech-en-0001-generation.xml

multi-speaker text-to-speech-en-multi-0001 モデルによる音声合成#

python3 text_to_speech_demo.py \ 
    -i <path_to_file>/text.txt \ 
    -o <path_to_audio>/audio.wav \ 
    -s_id 19 \ 
    -m_duration <path_to_model>/text-to-speech-en-multi-0001-duration-prediction.xml \ 
    -m_forward <path_to_model>/text-to-speech-en-multi-0001-regression.xml \ 
    -m_melgan <path_to_model>/text-to-speech-en-multi-0001-generation.xml

: s_id は話者の発話スタイルを定義します。-1 を選択すると、マルチスピーカー TTS モデルのパラメーター選択ウィンドウがアクティブになります。このウィンドウは、話者の性別、話者のインデックス番号を選択するか、PCA ベースの話者埋め込みを計算する可能性を提供します。s_id は、text-to-speech-en-multi-0001 モデルでのみ使用できます。

デモの出力#

アプリケーションは生成されたオーディオを含む WAV ファイルを出力します。デモレポートには以下が含まれます。

  • レイテンシー: 入力データの処理に必要な合計処理時間 (データの読み取りから結果の表示まで)。

関連情報#