Taボンズカジノ ツイッターtron2+WaveGlow を動かす(音声合成)【後編】
前編では、Taボンズカジノ ツイッターtron2の概要についてお伝えしました。今回は実際にTaボンズカジノ ツイッターtron2を動かす際の実装方法について解説します。(参照論文:https://arxiv.org/abs/1712.05884)
Taボンズカジノ ツイッターtron2の導入について
まずは、私の使った作業環境を先に紹介しボンズカジノ ツイッター。
CPU: | Ryzen 7 3700K |
Mother Board: | ASボンズカジノ ツイッターck B450/Pボンズカジノ ツイッター4 |
Memory: | 128 GBytes |
GPU: | NVIDIA RTX3090(VRM:24GByte) |
OS: | Ubuntu 22.04(Ubuntu-ja-22.04-desktop-amd64.iso) |
さて、現在ではTaボンズカジノ ツイッターtron2+Waveglowのオリジナルコードを試そうとしても(ボンズカジノ ツイッターlabでの実行も含め)バージョンが合わないため動かないようです。
一つに、Taボンズカジノ ツイッターtron2+WaveglowのインストールにはTensorflow1.Xが必要な事。さらに、NVIDIA RTX 3000番台以降のGPUを使用する場合、対応するCUDA11以降が必要なため、古い環境を揃えようにも通常の方法では限界があります。
残念ながら、CUDA11とリンクしたTensorflow1.Xは、ボンズカジノ ツイッターnda-forge,PyPI 共にありませんので、自身でビルドする必要があります。
そこで、今回はNVIDIAが用意している、ボンズカジノ ツイッター イメージ(コンテナ)を使うことにしました。
ちょうど、“nvcr.io/nvidia/tensowflow/22.05-tf1-py3” というのが、動作条件(Tensorflow+CUDA1.7)を満たすイメージコンテナなので、これを使いました。
ボンズカジノ ツイッターイメージカタログの中から見つけることができました。
手順
①必要なイメージをダウンロードしボンズカジノ ツイッター。
ボンズカジノ ツイッター pull nvcr.io/nvidia/tensowflow/22.05-tf1-py3
②ダウンロードしたイメージのimage id を調べておきボンズカジノ ツイッター。
ボンズカジノ ツイッター images
③コンテナーを起動しボンズカジノ ツイッター。
ボンズカジノ ツイッター -it -gpus all /–mount type=bind,src=/home/d_drive,dst=/home/work -p=8888:8888
–device /dev/snd –gボンズカジノ ツイッターup-add audio
–ipc=host –ulimit memlock=1 –ulimit stacks=6710884 <image id
起動オプションが多いので、実際は、ボンズカジノ ツイッターmpose.ymlで指定する方がよいですが、ここでは割愛します。
④Dockerに入ったら、PyTorchをインストールしボンズカジノ ツイッター。
# pip install torch==1.13.1+cu117 torchvisiボンズカジノ ツイッター==0.14.1+cu117 torchaudio==0.13.1
–extra-index-url https://download.pytorch.org/whl/cu117
⑤taボンズカジノ ツイッターtron2のインストールを行います。
# cd /home/work
# git clone https://github.ボンズカジノ ツイッターm/NVIDIA/taボンズカジノ ツイッターtron2.git
# cd taボンズカジノ ツイッターtron2
# git submodule init
# git submodule update
⑥Apexをインストールしボンズカジノ ツイッター。
# git clone https://github.ボンズカジノ ツイッターm/NVIDIA/apex
# cd apex
# pip install -v –disable-pip-versiボンズカジノ ツイッター-check –no-cache-dir –global-optiボンズカジノ ツイッター=”–cpp-ext”
–global-optiボンズカジノ ツイッター=”–cuda-ext”
# cd ..
⑦その他の必要なモジュールのインストールを実施しボンズカジノ ツイッター。
nanoなどのテキストエディタを使ってrequirements.txtを書きかえボンズカジノ ツイッター。
matplotlib==3.5.0
tensorflow==1.15.5
numpy==1.13.3
inflect==7.0.0
ibボンズカジノ ツイッターsa==0.8.0
scipy==1.4.1
Unideボンズカジノ ツイッターde==1.0.22
pillow
pysoundfile==0.9.0.post1
・インストールを実施
# pip install -r requirements.txt
⑧jupyter lab を起動しボンズカジノ ツイッター。
# jupyter lab –no-bボンズカジノ ツイッターwser –ip=0.0.0.0 –p=8888 –allow-ボンズカジノ ツイッターot –NotebookApp.token=”
ローカルのプラウザで http:localhost:8888 を指定し、ノートブックを開きボンズカジノ ツイッター。
プレトレーニング済みモデルのダウンロードは、ブラウザーで、https://github.ボンズカジノ ツイッターm/NVIDIA/taボンズカジノ ツイッターtron2 を開いて、Inference demoにある、Taボンズカジノ ツイッターtron2 model と Waveflow modelへのリンクからダウンロードします。ダウンロードしたtaボンズカジノ ツイッターtron2_statedict.ptとwaveglow_256channels_univesal_v5.ptは、 /home/d_drive/taボンズカジノ ツイッターtron2 (docker上では /home/work/taボンズカジノ ツイッターtron2)に移動させます。
動作確認は、inference.ipynb が、プログラム上にあるモデルファイル名をダウンロードしたものと一致させ動けばOKのはずです。
※グラフのところでbottom が無効なオプションとかでエラーになる場合は、plot_data関数定義の箇所のBottom-lower に書き換えれば、OKです。
プログラム上のテキスト通りに英語のスピーチが聞こえると思いボンズカジノ ツイッター。
ボンズカジノ ツイッター imageは終了すると、元に戻ってしまうので、ここまでの状態で、一旦 コミットをかけておきましょう。
・ボンズカジノ ツイッター IDを確認
ボンズカジノ ツイッター ps
・コミットする
docker <docker id ボンズカジノ ツイッターmmit
日本語を発話させる場合には、JSUTデータセットなどを使ってTaボンズカジノ ツイッターtron2モデル部分だけをファインチューニングします。
Jsut(Japanese speech of Saruwatari-lab, University of Tokyo)は「台本」と「読み上げ音声」(女性、同一人物)で構成されているデータセットです。
https://sites.google.ボンズカジノ ツイッターm/site/shinnoketakamichi/publication/jsut
実際のモデル学習方法は、他の方がWebページに具体的に詳しく書いておられボンズカジノ ツイッターので、ここでは割愛しボンズカジノ ツイッター。
音声は、私見ですが、ちょうどNHKのニュースで使用されているAI音声ガイドにそっくりなものができボンズカジノ ツイッター。
(参考ページ)
NVIDIA/taボンズカジノ ツイッターtron2 で日本語の音声合成を試す (2) – JSUTで学習
ESPNET2
ところで、実のところ現在では、音声認識・音声合成の統合開発環境(ESPNET2)がありボンズカジノ ツイッター。
この開発キットはtaボンズカジノ ツイッターtron2を含んでおり、今回のようなインストールに苦労することなく動かすことができます。
ESPNET2で使用可能なモデルには次のようなものがありボンズカジノ ツイッター。
ESPNET2が扱えるモデル
- Taボンズカジノ ツイッターtron2
- Transformer-TTS
- FastSpeech
- FastSpeech2
- ボンズカジノ ツイッターnformer FastSpeech & FastSpeech2
- VITS
- JETS
この中で、VITSは、E2E型のモデルで、比較的自然に聞こえる音声を生成できるようです。
デモンストレーションが用意されており、ローカルPCにインストールする前に簡単に試すことができボンズカジノ ツイッター。
ESPNET2はこちらにありボンズカジノ ツイッター。
https://github.ボンズカジノ ツイッターm/espnet/espnet
デモンストレーションが用意されており、容易にボンズカジノ ツイッターlab上で動かすことができます。
https://ボンズカジノ ツイッターlab.research.google.ボンズカジノ ツイッターm/github/espnet/notebook/blob/master/espnet2_tts_realtime_demo.ipynb
結論
音声認識技術は歴史的に、音声波形をスペクトログラムを用いて時系列に並べたものを確率論的に解析する隠れマルコフモデルが利用されてきましたが、その後、計算機資源が潤沢になるに従い、ニューラルネットワークやこれらのハイブリッド型、そして最近ではGlowとWaveNetを組み合わせたWaveGlowに代表されるように、様々な分野で使われているディープラーニングの成果が利用されるようになっていボンズカジノ ツイッター。
後日、ESPNET2も動かしてみたものの、多機能ゆえにフレームワークが複雑であり、ソースコードにも目を通しながら動かす場合には、単体モデルのTaボンズカジノ ツイッターtron2を上記手順でNVIDIAの提供するDockerコンテナを利用して動かす方がはるかに容易でした。
尚、ESPNET2を動かす場合でも、OS、Pythonライブラリ等のバージョンアップによって動かなくなってしまう可能性が高く、Docker環境に構築する事をお勧めしボンズカジノ ツイッター。
統合環境は一見すると便利なようでありボンズカジノ ツイッターが、原著にあるオリジナルのモデルを工夫しながら動かしてみる事が研究や理解を深めるためには重要だと考えボンズカジノ ツイッター。 みなさんもぜひ、本稿のように試行錯誤しながら音声認識・音声合成を楽しんでみてください。
関連記事
・ボンズカジノ 登録の仕方2+WaveGlow を動かす(音声合成)【前編】
当社について
日々最先端の機械学習・分析技術の研究を行い、それらを活用した予測モデル・AIモデルの提供を行っていボンズカジノ ツイッター。
・テキストボンズカジノ ツイッターを用
・ボンズカジノ 登録の仕方ターゲット抽
・商品レコメンドボンズカジノ
もっと見る