テキスト読み上げ 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 ファイルを出力します。デモレポート

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