ASJ Freshニュース 第94号 (2022年5月28日)

◆ 書評:Pythonで学ぶ音声合成

━♪━━━━━━━━━━━━━━━━━━
日本音響学会 学生・若手フォーラム
ASJ Freshニュース 第94号
2022年5月28日 発行
━━━━━━━━━━━━━━━━━━♪━

今回の ASJ Fresh ニュースでは、2021年に発行された機械学習ベースの音声合成本である “Pythonで学ぶ音声合成” の感想と、学習環境について紹介したいと思います。

書評:Pythonで学ぶ音声合成

書籍情報

著者:山本龍一LINE株式会社)、高道慎之介(東京大学) 
発売日:2021812 
出版社:株式会社インプレス 
ISBN9784295012276 
価格:3850円(税込み) 

 

書籍ページ:https://book.impress.co.jp/books/1120101073 
サンプルコード:https://github.com/r9y9/ttslearn 
サンプルコードのドキュメントサイト:https://r9y9.github.io/ttslearn/latest/index.html 
正誤表 
https://docs.google.com/spreadsheets/d/185pTXTzCI3l4kkJTXVa4fsu6yhAwd8aury2PnLol55Q/edit?usp=sharing 

 

感想(若手フォーラム幹事:山本)

学ぼうとしたきっかけ 

著者の山本龍一さんとは学生時代からの友人で、今回の出版にあたり本書籍をご献本いただいたことがきっかけでした。以前から音声合成や音声信号処理のための機械学習やツール群には興味をもっておりましたが、全くの初学者でした。そのため機械学習ベースの音声合成システムを学ぶには今回が絶好の機会だなと思い、手をつけてみることを決心しました 

学習環境 

自宅環境では昨今の高性能なGPUを積んだマシンを持っていなかったので、最初は新規でマシンを購入することを検討していました。しかし、GPUを用いた学習環境を安価で即座に使えるどこでも計算を実行可能であるとの理由から、最終的にGoogle Colaboratory Pro  (https://colab.research.google.com) を使用することにしました。また音声コーパスや学習データをGoogle Driveで保存できるようにGoogle One (https://one.google.com/) で追加容量を購入しました。 

 

有料サービスを契約することで学習のための追加費用が発生しましたが、同様の計算機環境を用意するための費用と時間を鑑みると、比較的安価な環境だったと思います。学生の皆様は、研究室等で計算機が支給されている、大学の環境でGoogle Colaboratoryが使用できるなど、場合に合わせてトータルコストを抑えられる方法で環境を構築することをおすすめします。 

感想 

とにかく著者が開発された学習用のサンプルコード群(ttslearn: https://github.com/r9y9/ttslearn)が使いやすく、Jupyter Notebook 上のコードを進めるだけで、WaveNetTacotoron2といった代表的な機械学習ベースの音声合成を日本語で体験できることに感動しました。統計的音声合成・機械学習ベースの音声合成に必要なフレームワークや手順が丁寧に整理されており、読者は各段階に合わせて知識を習得し、実際にサンプルコードを動かすということができるかと思います。 

 

書籍の前半部分では、音声合成やヒトの音声生成過程の物理現象および音声分析合成システム(主にWORLDに関する基本知識が紹介されています。その後、現在の機械学習ベースの音声合成システムの基礎となる統計的音声合成・統計的パラメトリック音声合成の理論的背景が紹介されていました。 

 

後者の内容については、Googleの全さんによる小特集記事(日本音響学会誌747月号https://www.jstage.jst.go.jp/article/jasj/74/7/74_387/_article/-char/ja/)で簡潔に解説されていましたが、本書籍では確率変数の依存関係を表すグラフィカルモデルといった基本的な考え方から説明されているため、統計的音声合成システムの定式化をよりわかりやすく学ぶことができました。その後、再度全さんの解説記事と比較することで、WaveNetTacotron2といったモデルがどのような確率変数の依存関係となっているのかも、改めて理解することができました。 

 

本書の後半では、そのようなWaveNetTacotron 2についても、わかりやすい図表とサンプルコードとともに、基本知識から実装まで日本語で学ぶことができましたその過程において、著者が公開されているnnmnkwiihttps://github.com/r9y9/nnmnkwiiを始め、PyTorchhydraTensorboardといったライブラリやツール使用方法やノウハウも紹介されており、コーディングやスクリプト実装といった観点からも大変勉強になりました。 

 

学習済みのモデルが用意されていることに加えて、自分自身でモデルを学習するために特徴量抽出を行うフレームワークも用意されています。本書では、高道先生のチームが公開しているJSUTコーパスのダウンロードや前処理ができるようにスクリプトが組まれており、コマンドを実行するだけで必要な準備を完了することができました。 

 

DNN音声合成システムのための特徴量の抽出過程では、前述のWORLDによる分析システムが使用されている上に、後段の合成部分でもWORLDのボコーダーが使用されていたりと、比較的古典的な音声分析合成は現在でも非常に有用なツールであることを学びました。 

 

書籍の内容としてもサンプルコードとしても大容量でしたが、本書を通して音声合成の基礎から最先端の動向までを学ぶことができました。次は、著者も関わっておられるESPnet2なども触ってみたいなと思いました。  

学習時のポイント 

Google Colaboratory上で開いたJupyter NotebookGoogle Driveに保存されたデータを読み込むためには、Notebookの先頭に以下のコマンドを追加すると進められました。 

### Google Drive  Colab にマウントする 
from google.colab import drive 
drive.mount('/content/gdrive/') 

### Google Drive 上の ttslearn/notebooks ディレクトリに移動(直下に置いた場合) 
%cd '/content/gdrive/MyDrive/ttslearn/notebooks' 

 

感想(若手フォーラム幹事会員:高橋) 

学ぼうとしたきっかけ 

自身の興味と昨年度入社した会社の業務での必要性から深層学習ベースの音声合成について実践的に学べる書籍を探していたところ、end-to-end合成方式までカバーしている本書が出版されると聞きつけ購入いたしました。深層学習については知識が皆無に近かったため、理論的な部分の補助として深層学習分野にフォーカスしている書籍を使用しつつ、深層学習ベースの音声合成を実践する際の教科書として本書を利用しました。 

学習環境 

最終的にend-to-end合成方式の音声合成手法群を比較したりカスタマイズしたりしたかったので、オープンソースend-to-end音声処理ツールキットESPnet2を利用しました。本書についているソースコードの一部はESPnet2を参考にしているらしく、本書ソースコードを見ながらESPnet2の各モジュールの理解をすすめました。入社1年目に与えられていた課題ともリンクしていたため会社の計算資源を利用して実践していたので、大学の研究室で計算環境が支給されている状況に近いと思われます。 

感想 

深層学習に関する知識がほとんどなく、Pythonでのプログラミング経験もない状態から、昨年度1年間かけて本書を主軸に学んできました。本書では簡潔で平易な表現、イメージが掴みやすい説明がされているためPythonで学ぶ音声合成の第一歩としてこれほど最適な書籍はないといっても過言ではないという感想です。原理説明パートで「どうしてこの処理が必要なのか」「この処理はどんな役割を担っているのか」「どんな嬉しいことがあるのか」簡潔に述べられているため、「なぜ?」でつまずくことなく納得して次の実装編に進めることができます。 

 

また、全く実践したことのない初心者では結果が得られてもなにをどう見たらいいのかわからないのですが、実装編においてどういう結果が得られたら正常に学習できたといえるかなど、結果の見方も説明されています.本書で学ぶことで「なんとなく理解した!」「学習終わった!」で終わることなく、「もっと詳しく知りたいから調べてみよう」「次はこう工夫してモデル学習させてみようかな」と繋がると思います. 

おわりに 

今回は音声合成の初学者と実務経験者の観点から、書籍「Pythonで学ぶ音声合成」を勉強してみた感想について述べました。本書には、一から音声合成の勉強をしたい人にも、最先端の音声合成を知りたい人にも、Pythonでの実装テクニックを学びたい人にも有益な情報が記載されています。電子書籍でも販売されていますので、興味がある方はぜひトライしてみてください。 

タイトルとURLをコピーしました