ノートPCとPythonでできる音声合成

「音声合成やってみたいけど難しそうだなあ」

私もそう思っていました。
私が使おうとしたきっかけは、大量の青空文庫の書籍を機械に朗読させたいと思ったからです。

そこで、調べてみるとできるということが分かりました。
WindowsのノートPCでも時間を掛ければできるし、これはスゴイ!

ただ、実際のコードを追ってみると技術(言語特徴量抽出、音響特徴量予測、音声波形形成)の複合体なので実装はツラい。orz
さらに調べてみると、Pythonにttslearnというライブラリがあり、なんと6行程度で実装が可能・・・!
これはスゴイ。

それでは、今回は成果物を交えて音声合成の技術書を紹介します。

成果物

「日本語音声合成のデモです。」という短い文の音声を作成しました。

DNN

計算時間

数秒

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch06_Recipe-DNNTTS.html

感想

聞いたことある感じやな~

WaveNet

計算時間

03:54(PC1+GPU使用あり)
06:04(PC2+GPU使用なし)

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch08_Recipe-WaveNet.html

感想

「です」がちょっと違和感あるなあ。。
計算時間もかかるし、これはDNNの方がいいかな?

Tacotron2

計算時間

03:07(PC1+GPU使用あり)
04:51(PC2+GPU使用なし)

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch10_Recipe-Tacotron.html

感想

えっ・・・?すごくないコレ…?
めっちゃ自然やねんけど。

今回の参照本


Pythonで学ぶ音声合成

ttslearnで利用されているモデルは非商用で使うことが可能です。ライセンスなどの詳細は公式サイトをご覧ください。

今回は3つのモデルのみ紹介しましたが、これが音声合成のすべてではありません。そのため、公式サイトに目を通してから利用されることを推奨します。
※過去からの積み重ねがあるので、そちらを読んでいただきたく。
※本を通読しましたが、数式に圧倒されるかもしれません。

エラー対応

Windows環境ではttslearnをインポートできない可能性があります。
そのため、その回避方法を下記に書いておきます。

openjtalk 0.1.3をダウンロード

pyopenjtalkからダウンロードします。
※バージョンが上がるとディレクトリ構成が違っているため、対応が難しいかもしれません。

config.hの編集

mecab/src/config.hを3点編集します。

/* #undef HAVE_WINDOWS_H */

を

#define HAVE_WINDOWS_H 1
/* #undef VERSION */

を

#define VERSION "1.10"
#define HAVE_DIRENT_H 1

を

// #define HAVE_DIRENT_H 1

pip install openjtalk

openjtalkの(setup.pyがある)メインディレクトリで、下記コマンドを実行します。

pip install -e .

pip install ttslearn

ttslearnがインストールできるはず!

エラー対応参考

https://github.com/r9y9/pyopenjtalk/issues/10
https://twitter.com/yamori81/status/1426918620676853769

機器情報

PC1

GALLERIA ZG Core i9 9900K/RTX2080/メモリ16GB K/08430-10a
ゲーム用タワーPC。一昔前のものだが、まだ現役で使えそう。

PC2

THIRDWAVE DX-T7
ノートPC。意外と計算速度が速かった。

青空文庫に関連するサービスについて

青空文庫関連の競合サービスは意外と少なく、文学作品を読める、人の朗読、Androidでの朗読・・・と色々あるものの、本を読む(聞く)間にある、さまざまな意思決定を円滑にする技術(文、音声、要約、検索、しおり、、etc)がどのサービスも所々抜けていて、中年層~ご老人に向けて刺さるような包括的なサービスになっていないので勿体ないなと。
しかもアクセス解析サイトで見てみると1サイトで月100万PV超えているものが複数。コレはびっくり…(@@;

移動時間でも、仕事前でも、就寝前でも、病院でも読める(聞ける)ようなサービスとなるとデバイスを問わないWebが一番楽ですかね。
ちょっと作ってみよう。

さいごに

今回は音声合成を試してみました。
Tacotron2のなめらかさには驚かれたかと思います。
それではまた~(^^ノ

【教材紹介】施策デザインのための機械学習入門

機械学習のその問題設定、現実に一致していますか?
予測しただけになっていませんか?

本当に解きたい問題はなんでしょうか。問題設定の応用的な方法論を学ぶための一冊を紹介します。

名称


施策デザインのための機械学習入門

著者

齋藤優太、安井翔太

概要

PoCで事業に貢献する良いモデルを作成し、さあ実践投入してみたところ・・・まったく効果がありませんでしたということはよくあります。なぜでしょうか?

それは、問題設定に課題があることがほとんどです。

例えば、ECサイトでクーポンを発券する問題を考えてみましょう。
目的は、売上(または利益)額を向上させることです。
クーポンを発券すべきかどうか、あなたはどのように解きますか?

ここでよくありがちな問題設定は、クーポンを配った人と配っていない人のABテストを行うことです。
果たして本当にそれでいいのでしょうか?

私の着眼点は、各ユーザーに対し、クーポンを配った時の期待値が最大化するところを見つけたいとします。
クーポンを配るべきでない人も配るべき人もいるでしょう。
さて、誰にクーポンを発券すべきでしょうか?それを、どのような式で回答できるでしょうか。

上記のような問題設定に対し、本書は基礎的な思考方法を実例を通して学んでいくことができます。
ECサイトや広告運用の問題が多いものの、一般化して考えることができるよう工夫されています。

必要知識

機械学習の基礎的な知識
機械学習の学習方法に対する基礎的な知識
統計学2級程度の知識
大学数学基礎教養レベルの知識
※数式がガッツリ出てきても諦めない力

得られるスキル

機械学習の問題設定、意思決定モデル、因果効果の推定

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】Interpretable Machine Learning(邦訳:解釈可能な機械学習)

機械学習の解釈可能性については、近年さらに重要視されています。
なぜでしょうか?それは、この書籍に記載されています。

このWebサイト(なんと無料!)では、説明性の性質の違いや、人間が考える良い説明とは何かを説明しています。 テーブルデータに対する網羅的な解釈可能性を学ぶには良い教材でしょう。

名称


Interpretable Machine Learning(邦訳:解釈可能な機械学習)

著者

Christoph Molnar
翻訳:株式会社HACARUS

概要

機械学習は多くの可能性を秘めています。
ただし、なぜそのような予測が出されたのか、理由が分からなければ検査もできず、バグにも対応できません。

例えば、ある画像認識のAIでは、オオカミと予測するには背景が白である(雪!)ことが重要で、競争馬と予測するには背景が緑である(芝生!)必要がありました。
そのように、なぜそのように予測されたのかがわからなければ、危なくて使えません。(上記のモデルは使いたくありませんね。)

本書では、下記のように触れられています。

なぜモデルの解釈可能性がそれほど重要なのか、もう少し考えてみましょう。何らかの予測モデルを構築する場合、そこに発生するトレードオフについて考える必要があります: あなたは顧客を集める可能性や、薬がどれだけ患者に効果的か、といったそのモデルが予測する結果についてのみ知りたいのでしょうか。それともたとえ予測性能が下がったとしても予測がなされた理由が知りたいのでしょうか。確かに、一部の事例では予測がなされた理由は必要なく、テストデータに対する予測性能のみを知ることができれば十分だと思います。しかし、この理由について知ることはその問題やデータに対する理解を深め、モデルが判断を誤る際にもその原因を探ることに役立ちます。

現実にモデルを適用するためには、意思決定者がYesと言える材料が必要ですし、利用者も何となくではOKを出さないでしょう。特に、自動運転や診療行為の自動化のような、命にかかわってくる部分には。
そのため、今回の書籍で学びましょう!

必要知識

機械学習の基礎的な知識
※プログラミング知識は、RやPythonなど1つ程度あれば十分対応可能です。

得られるスキル

テーブルデータの機械学習の解釈可能性の理論
Partial Dependence Plot、Individual Conditional Expectation、Accumulated Local Effects、特徴量の相互作用、Permutation Feature Importance、Global Surrogate、LIME、Anchors、SHAP、ニューラルネットワークの解釈
Counterfactual Explanations、Adversarial Examples、prototypeとcriticism、Influential Instances

こちらは、テーブルデータを重点的に説明した書籍です。いろいろなデータの大局的な説明が必要な場合は、【教材紹介】XAI(説明可能なAI)をご覧ください。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】XAI(説明可能なAI)

今日では、さまざまなデータが収集され、判断の自動化や数値予測の高度化が行われています。

そのAIの判断、どう説明すればいいかわかりますか?
エクセルのようなテーブルデータだけでなく、画像やテキストに対しての判断基準の説明は、意思決定に必須でしょう。
本書はそれらの技術を網羅的に確認します。

名称


XAI(説明可能なAI)

著者

大坪直樹ら

概要

さまざまな機械学習を説明するXAI技術の研究が進んでいます。
私たちは幅広い実務でAIを利用し、成果を上げるために何ができるでしょうか?
そこには、現場の利用者に納得してもらってこそ、常に使われるモノになります。

今回の書籍は、その納得を引き出すための技術の解説書です。
XAIのさきがけとなったLIMEや、画像でのXAIであるGrad-CAM、テーブルデータで必須のSHAPなどが説明されています。
どんなデータが来ても、ある程度対応できるようになるので、ぜひ読んでみてください。

必要知識

機械学習の基礎的な知識
高校数学レベルの数式を読む力

得られるスキル

Python
テーブルデータ・テキストデータ・画像データなどに対するXAI理論
LIME、SHAP、Permutation Importance、Partial Dependence Plot、Tree Surrogate、CAM/Grad-CAM、各種ライブラリの使い方。

こちらは、【教材紹介】機械学習を解釈する技術に比べ、データの種別ごとのXAIなど大局的な説明が多いです。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】機械学習を解釈する技術

多くの企業で導入されるようになってきた機械学習。
その機械の判断基準、本当にわかっていますか?

今回は、実務に利用するために最低限の技術として、変数(特徴量)の重要度や変数と予測値の関係性を求める方法を解説した書籍を紹介します。

名称


機械学習を解釈する技術

著者

森下光之助

概要

地味な表紙をしている本書。
ただ、内容は今後とても重要だと考えられます。
なぜなら、新聞でよく出てくるようなAIの解釈性を担っているのは、ほとんどがこれらの技術だと言って過言ではありません。

特徴量の重要性、変数と予測値の関係性、個別サンプルの予測説明。
そして、それらをまとめて確認できるSHAP(SHapley Additive exPlanations)。
テーブルデータに利用するそれらの方法を、ライブラリと簡単な数式で読み解きます!

必要知識

機械学習の基礎的な知識
高校数学レベルの数式を読む力

得られるスキル

テーブルデータに対するXAI理論
Python、機械学習の解釈性の定義、線形会期モデル、Permutation Feature Importance、Partial Dependence、Individual Conditional Expectation、SHAP(SHapley Additive exPlanations)

こちらは、テーブルデータを重点的に説明した書籍です。いろいろなデータの大局的な説明が必要な場合は、【教材紹介】XAI(説明可能なAI)をご覧ください。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】機械学習のための「前処理」入門

予測のためのデータ前処理(加工)にはさまざまな手法があります。本書では、非構造化データを中心に「予測するために」データ分析を進めていきます。前処理と銘打たれていますが、どちらかというとデータ加工のテクニックを記述した本です。

名称


機械学習のための「前処理」入門

著者

足立悠

概要

構造化データ、非構造化データにはデータの前処理(加工)という難題があります。非常に手間暇がかかり、かつ分析モデルの精度に大きく関わってきます。今回の書籍では、非構造化データを中心にデータ加工から予測モデルの構築まで、分析フレームワークCRISP-DMをベースに話を進めます。

この書籍は前処理というより、加工の本だと思われる。下記の定義の前処理なら、必要知識にある前処理大全がおすすめ。

必要知識

【教材紹介】前処理大全

得られるスキル

Python, 欠損値補完, 不均衡データの均衡化, 正規化, クラスタリング, 次元削減
画像データの加工, 時系列データの加工, 自然言語データの加工

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】前処理大全

前処理はデータ分析で重要な事項です。なぜなら、有用な特徴情報を上手く抽出できていなければどんなモデルであれ無用の長物です。ただ、前処理は体系だった学問としては存在せず、実務の中で学んでいくことが多いため、気づかずミスを犯していることが多いのです。

名称


前処理大全

データ分析のためのSQL/R/Python実践テクニック

著者

本橋智光

概要

本書は系統立てて前処理を学んでいきます。そこで、SQL/R/PythonのAwesomeなコードとNot Awesomeなコードの実例をもとに、Awesomeとは何かを考えます。

この本が理解でき、実践できるようになれば、データサイエンス初心者とは言えないでしょう。
*ただし、画像や音声、動画などの前処理は行いません。もちろん、発展的な時系列解析などの前処理も扱いません。

必要知識

入門程度のプログラミングの知識(関数等が分かる程度)
入門程度の統計学の知識(統計学3級程度)

得られるスキル

前処理, 抽出, 集約, 結合, 分割, 生成, 展開, Python, R, SQL
数値型の前処理, カテゴリ型の前処理, 日時型の前処理, 文字型の前処理, 位置情報型の前処理

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】異端の統計学ベイズ

今回はベイズ統計学の歴史書です。今でこそ、頻度論の統計学とベイズ統計学などをひとまとめにして統計学と言われていますが、そこに至るまでに何があったのか?そちらを詳細に記述する500ページ越えの大作です。

名称


異端の統計学ベイズ

著者

シャロン・バーチュ・マグレイン

概要

統計学の知識ではなく、教養を得るための本です。
内容は英語版のタイトルの通りです。

The Theory That Would Not Die:
How Bayes’ Rule Cracked the Enigma Code, Hunted Down Russian Submarines, and Emerged Triumphant from Two Centuries of Controversy.

訳:ベイズの法則はいかにしてエニグマを解読し、ロシアの潜水艦を追いつめ、2世紀にわたる論争から勝利を得たか。
「事実が変われば意見を変えうる」ことがいかに認められてきたのか。読書にいい本です。

必要知識

なし

得られるスキル

教養, 歴史, 頻度論, ベイズ統計学

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】データ解析の実務プロセス入門

「データ分析を会社で初めて行いたい」「データ分析を任されたがどうすればいいかよく分からない」というときはこちらの書籍がおすすめ。良いデータ分析を構成する分析プロセスからデータの収集方法、探索的データ解析(EDA)、運用までをカバーする珍しい書籍です。

名称


データ解析の実務プロセス入門

著者

あんちべ

概要

難しい用語なしに、データ分析のプロセス全体を俯瞰した書籍。
他の書籍ではあまり見かけないが、実務では重要な運用や分析事例についての言及が多く載っている。
2人の登場人物の対話形式で進むため、さくさく読むことができる。

必要知識

なし

得られるスキル

データ分析プロセスの概要理解, データ収集, データ測定, 探索的データ解析の概要, 運用, KPI, テキストマイニング, ビジネスデータ分析事例

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】KPIマネジメント

事業を正しく成長させたい。ただ、単なる指標管理ではうまくいかない・・・。そこでこの書籍では、あるべき状態に基づいたストーリー上のKPIを設定し、無理なく事業を成長させていくヒントを学びましょう。

名称


KPIマネジメント

著者

楠本和矢

概要

KPIは初めて聞いた言葉でしょうか?
KPIは事業目標の達成に向けて、無駄なく行動するために集中するポイントであり、進捗を数値で表せるモノです。
この書籍では難しい理論を用いず、何が大切で、何が大切でないかを示す行動の指針(KPI)を策定します。

ただ、注意していただきたいことは、KPIをはじめとした数値は操作しうるということです。
人は楽をしたがり、指標をハックします。その対策として、この書籍ではストーリーを作成することで、企業の存在をあるべき状態に近づけていきます。

必要知識

なし

得られるスキル

KPIの定義, KPIマネジメント, インサイト探索, あるべき状態, KPI/ストーリー設定, KPI策定, KPI測定

その他の教材紹介ページはこちら → Skill Stacks