PyTorch入門講座 – 日本語対応のテキスト音声合成(E2E-TTS:End-to-End Text-to-Speech)
Google ColaboratoryのJupyterノートブックの開発環境で試せる機械学習系のプログラムを探していると、面白そうなサンプルコードが公開されていたので取り上げさせていただきます。
当初は、ただ自分の学習を兼ねて動かす程度の気持ちで構っていましたが、実際にサンプルコードを実行してみると
「 これはすごい… 」
と思いました。
オープンソースのPythonの機械学習ライブラリのPyTorch(パイトーチ)を使って、GitHubに公開していただいているテキスト音声合成(TTS – Text-to-Speech:テキストを入力すると日本語の音声が出力される技術)のデモのようですが、普段使っているMacのターミナルで使える「say」に比べると質が良さそうでした。
そのため、現在、機械学習系のプログラミング等を学習中の初学者の方の利便性を考えて、サンプルコードの実行方法を動画で解説しておきました。
オープンソースの音声処理ツールキットの
・ESPnet (End-to-end speech processing toolkit:End-to-End音声処理ツールキット)
というものを活用しているようですが、Googleのアカウントがあれば無料で使えるGoogle ColaboratoryのJupyterノートブックの開発環境のGPUを使い、オープンソースの技術等を色々と試せる時代に感謝です。
まだ、テキスト音声合成については、調べはじめた段階のため、詳細の仕組みや音声データの学習のさせ方等については分かりませんが、面白い技術ですね。
【PyTorch入門】日本語対応のテキスト音声合成入門:E2E-TTS(動画)
視聴時間:5分0秒
Pythonプログラミングで活用できることで、Mac・Windows問わずに、テキストの読み上げ(音声読み上げ)を試せるのでありがたいですね。
【追記:2021年10月15日】
Googleアカウントにログインした状態で「ファイル – ドライブにコピーを保存」をすると普通にプログラムを実行できるようでした。
また、2021年10月に確認時点では「Setup」のコードを実行すると以下のエラーが出力されるようでした。
エラーの出力
No module named 'chainer'
(from espnet.asr.asr_utils import get_model_conf でエラー)
対応方法例としては、「Setup」のコードを実行する前に
実行コード
!pip install chainer
を実行すると、「Synthesis」のコードまでを実行できるようでした。
プログラムの不具合について、コメントで教えてくださった方はありがとうございます。
【テキスト読み上げ:日本語の高品質な音声を生成】
ESPnet (End-to-end speech processing toolkit:End-to-End音声処理ツールキット。オープンソースの音声処理ツールキット)等を活用して、E2E-TTS(End-to-End Text-to-Speech:End-to-End型テキスト音声合成)を実行するためのサンプルプログラムを動かす方法を動画で解説しておきました。
動画で活用させていただいたサンプルコード(Google Colaboratory)
ESPnet real time E2E-TTS demonstration(Author: Tomoki Hayashi)
:https://colab.research.google.com/github/espnet/notebook/blob/master/tts_realtime_demo.ipynb
espnet / espnet (GitHub)
:https://github.com/espnet/espnet
動画では、Tacotron 2の事前学習済みモデルを利用して日本語のテキスト音声合成を試してみています。
Macのターミナル「say」で出力出来る音声と比較してみましたが、イントネーション(抑揚)に違いがあるようでした。まだ音声を学習させる方法はわかりませんが…テキストを読ませる分には充分そうですね。
調べられた範囲では、ESPnet は、Pythonを利用して主に開発され、ディープラーニングのエンジンに、PyTorchとChainerを用いているようです。詳細はまだよくわかりませんが、まさに、人工知能・機械学習研究の恩恵ですね。
日本語の文字起こしが7行のコードで出来てしまうのですね…
:【Python入門】日本語の文字起こしのやり方(音声認識:音声ファイル編)サンプルコード