Mozilla TTSを動かしてみよう。- 第一回 –
MozillaといえばFireFoxブラウザが有名なところですが、「音声技術(音声合成や音声認識)」についても誰でも利用可能で制約の少ないものを提供しようと活動しています。
そこで今回は、そのMozillaが活動している音声技術の中の音声合成技術「Mozilla TTS(Text to Speech)」を実際に導入して動かしてみましたので、何回かに分けて本ブログで記載していこうかなと思います。(一応、予定では3回位で。)
第一回の今回は、Mozilla TTSを動かす前に、ある程度、基礎知識は知っておいた方が良いかなと思うので、今回は歴史も踏まえて少し音声合成について記載していきます。
早くMozilla TTSを動かしたいと結論に行きたい人は多いとは思いますが、最後まで読んで頂ければ幸いです。(いろいろ書いていたら長くなってしまいました…すいません。)
1.音声合成の歴史
音声合成(Text to Speech, 略TTS)の現在の主流は、ディープラーニング技術(*1)を活用したニューラルネットワークベースの音声合成です。それにより、自然なイントネーションや感情表現を含む音声合成が可能になってきました。若干の違和感はありますが、過去に比べるとかなり改善されたと思います。
*1 ディープラーニング技術
人間の脳に近い形で、入力されたデータの特長・パターンなどを学習して、問題などを解決させる手法の事です。人間の脳の構造を模倣させたものが「ニューラルネットワーク」と言います。
音声合成の技術としては、私の記憶では以下の歴史をたどっているかなと思います。(間違っていたらすいません。)
1)規則ベースの音声合成
2)コーパスベース音声合成
3)今回のニューラルネットワークの音声合成
1.1.規則ベースの音声合成
1990年代から2000年位のコールセンターにおける音声応答システムやカーナビで使われていた技術で、言語学的なルールと音声学的な特性を利用してテキストから音声を生成する方法です。
ルールを人間が設計する必要があり、その規則(ルール)や文言のアクセントを設定したアクセント辞書を用いる手法なので、なかなか自然な発話とならず機械的な音声(まさにロボットみたいな音声)でした。
①音韻の変化をルールとして定義
日本語では、隣り合う音素の影響で音が変化することがあります。このような音韻の変化をルールとして定義していきます。
例)「ん」の後に、「ば行」が来ると「ん」が鼻音化する
例えば、「新聞(しんぶん)」や「日本橋(にほんばし)」という言葉などがそうですが、「ば行」が来ると、前の「ん」は鼻音化しています。
このようなルール(規則)を「テキスト」→「合成音声」の生成の際に用い、あらかじめ準備された音声を結合して合成音声が生成されておりました。
②イントネーションとアクセント
日本語は、アクセントが少ないと言われますが「高低アクセント」があり、文や単語のアクセントの違いで意味が変わる場合があります。
そのため、それを「アクセント辞書」という辞書を利用して各文言に一つ一つアクセント(イントネーション)を与えるものです。
例)例えば、「雨(あめ)」、「飴(あめ)」はアクセントの違いがあり、このような文言を「アクセント辞書」を使用して一つ一つ辞書として設定して使用していました。
ただ、関西の「日本橋」と関東の「日本橋」ではイントネーションが異なる場合もあり、日本語でもエリアによって発音が異なったりするので、やはり限界がありました。
③抑揚や間の調整
自然な発話につなげるため、最終的には人の手によって、抑揚や間(ポーズ)を調整したりして、より自然な発話につなげるものです。ただ、こちらで調整しても、なかなか自然な発話にはならず、やはり限界がありました。
一方で、規則ベースの音声合成は、機械的で不自然な音声ではありましたが、都度録音作業などが必要ではないため、自動音声応答システムなどの可変的な音声部分で利用されることが多かった気がします。
1.2.コーパスベース音声合成
コーパスベースの音声合成(Corpus-Based TTS)は、規則ベースの音声合成に次ぐ技術として登場しました。この手法は、音声合成に必要なデータを人間の声を録音した膨大な音声データセット(コーパス)から音声を結合し生成するものです。録音された音声データを細かい単位(音素や音節など)に分割し、テキストの内容に応じて最適な音声単位を選んで結合し、それをさらに音声波形の調整を加える事で音声合成を実現します。
(一言でいうと、ハードウェアの進化によって膨大な音声データベースを扱う事ができるようになり、このコーパス(音声データセット)によってより滑らかな音声合成が実現できたものと考えると良いかなと思います。)
①音声コーパスの準備
プロの声優さんやナレーターさんに、日本語の全音素の組み合わせや頻出するフレーズを網羅したテキスト文章を数時間~数十時間にわたって発話してもらい録音します。そして、その録音データを音素(最小単位)、音節、単語、フレーズといった単位に細かく分割し、それらにラベル(インデックス)を付与し音声データベースとして管理します。
②音声単位検索と結合
入力されたテキストを解析させ、対応する音声単位を音声データベースから検索します。そして、複数の候補がある場合には、接続部分の滑らかさやイントネーションを考慮した最適なものを選択させ、その選ばれた音声単位を順番に結合し、1つの連続した音声波形を生成します。
場合によっては、その後さらに、人の手によってその音声波形をチューニング(抑揚の調整など)することで滑らかな音声を実現することで音声品質を向上させます。
カーナビや学習用ソフトの読み上げ、ゲームのキャラクターなどで用いられていたと思いますが、膨大な量の録音作業が必要となることや、大規模な音声データベースが必要となることが課題でした。さらに、音声データベースに存在しない単語やフレーズは、音素単位の結合に頼らざるおえないため、この場合には滑らかさが損なわれる問題もありました。
1.3.ニューラルネットワークの音声合成
コーパスベースの音声合成は、規則ベース音声合成に比べて大きく進化はしましたが、先に述べた通り、音声データベースの容量の限界や滑らかさの課題を完全には解消できていませんでした。これらの課題を解決するために、ディープラーニングを活用したニューラルネットワーク音声合成(例: WaveNet、Tacotronなど別途後述)が登場してきました。
ニューラルネットワーク音声合成では、コーパス(音声データベース)を基にしたモデルを学習させて、音素やフレーズの結合で音声を生成するのではなく「音声波形」そのものを生成しています。その結果、より自然で柔軟性の高い音声合成が可能となり、これが現時点の主流の音声合成機能となります。
ただ、新しい音声合成の「声」を作る際には、機械に学習させるために、やはりある程度の量の録音作業が最初に必要ではあります。
2.現在主流のニューラルネットワーク音声合成について
ここでは、「ディープラーニングを活用したニューラルネットワーク音声合成」について少し詳しく記載します。この技術によって、従来の方法に比べて、より自然で人間らしい音声を生成できるようになりました。
2.1.ディープラーニングとは
ディープラーニング(Deep Learning)は、機械学習の一種で、多層のニューラルネットワークを用いてデータからパターン(特長)を学習する技術の事です。ニューラルネットワークは、人間の脳を模倣した構造で、入力データを「層(レイヤー)」という複数の層(段階やステップ)で処理していき最終的に出力を得ます。ディープラーニングの技術は、その名の通り多層(ディープ)なネットワーク(ニューラルネットワーク)を使って、より複雑で高精度な予測や生成ができるものです。
音声合成では、ディープラーニング技術を用いることでテキストデータから直接音声波形が生成できるようになりました。これにより、従来の音声合成の手法よりも格段に自然でリアルな音声が生成できるようになっています。
2.2.ニューラルネットワーク音声合成の基本的な仕組み
ディープラーニングを活用した音声合成の中核をなすのが、先ほどから記載しているニューラルネットワークなわけですが、本音声合成の仕組みで特に重要なのが、受け取ったテキストから「音声波形を自動生成」する仕組みになります。
①音声合成を行うテキストデータの受取(入力データ)
もちろん入力として与えられるのはテキストデータです。ここは従来と変わらず、文章であったり単語だったりします。
②テキストから特徴抽出(分析)
ニューラルネットワークは、入力されたテキストから音声を生成するため、音韻的な特徴やイントネーション、さらには文脈を考慮して、音声をどう発音すれば良いのかを考えます。
③音声波形の生成
従来の音声合成技術では、音素(音の単位)を組み合わせて(結合して)音声を作っていましたが、ディープラーニングでは、このニューラルネットワークが直接音声波形を生成することで滑らかな音声合成を生成します。
2.3.音声波形の生成について
ニューラルネットワークを使用した音声合成技術には、いくつかのアプローチ(特徴を抽出する方法)があり、有名なものとしては「WaveNet」や「Tacotron」があります。
①「WaveNet」
WaveNetは、DeepMind社によって開発されたニューラルネットワーク音声合成システムで音声波形を直接生成します。音声の各サンプルを予測して次の音声サンプルを生成していくことで特徴を抽出します。これによって、非常に高品質で自然な音声を生成することができています。
②「Tacotron」
Tacotronは、Googleが開発したエンドツーエンドのTTSモデルでWaveNetと同様に音声波形を直接生成します。従来の複数の個別モジュールを統合し効率的な音声生成を実現しました。いくつかのプロセスを通じて特徴量(特徴を定量的な数値として表したもの)を抽出し、音声のイントネーションやリズムも自然に再現できるようになっています。
3.ライセンスフリーで利用できる音声合成一覧
音声合成技術は、商用の製品だけでなく、オープンソースやライセンスフリーで利用できる音声合成エンジンが多く存在しています。ここでは、代表的なライセンスフリーの音声合成エンジンを紹介しようかなと思います。
(ライセンスフリーでも使用や再配布、改変に関する条件が異なる場合があります。詳細はそれぞれの公式サイトでご確認下さい。)
3.1.Mozilla TTS
Mozilla TTSは、Mozillaが開発したオープンソースの音声合成システムで、高品質な音声合成をディープラーニング技術で実現しており、幅広い用途で利用されています。
特長 | ・ディープラーニングを活用した自然な音声生成 |
---|---|
主な用途 | ・ウェブアプリやモバイルアプリの音声機能 |
公式サイト | Mozilla TTS GitHubリポジトリ |
3.2.eSpeak NG
eSpeak NGは、軽量で多言語対応の音声合成エンジンです。特にシンプルで高速な音声生成が特徴で、組み込みシステムやリソースが限られた環境で広く利用されています
特長 | ・軽量で低リソースでも動作可能 |
---|---|
主な用途 | ・小規模なアプリケーションや通知音声の生成 |
公式サイト | eSpeak NG GitHubリポジトリ |
3.3.Coqui TTS
Coqui TTSは、Mozilla TTSから派生したオープンソースプロジェクトで、研究開発やプロトタイプの作成に向いており、高品質な音声モデルを提供しています。
特長 | ・最新のディープラーニング技術を活用 |
---|---|
主な用途 | ・カスタマイズ性の高い音声合成システム |
公式サイト | Coqui TTS公式サイト |
3.4.OpenTTS
OpenTTSは、複数の音声合成エンジンを統合的に利用できるフレームワーク。これにより、eSpeak NGやMozilla TTSなどを1つのインターフェースで利用可能になります。
特長 | ・複数のTTSエンジンを簡単に切り替え可能 |
---|---|
主な用途 | ・音声合成のシステム統合 |
公式サイト | OpenTTS GitHubリポジトリ |
など。
4.Mozilla TTSを選んだ理由
今回のブログのタイトル通り、実際に稼働させるのはMozilla TTSになります。数ある音声合成エンジンの中から、なぜMozilla TTSを選んだのかを記載しておきます。
4.1.オープンソースであること
まずは、なんといってもオープンソースであることが理由です。Mozilla TTSは、完全にオープンソースで提供されており、誰でも自由に利用・カスタマイズができます。これが何を意味するかというと、商用利用を含めてコストがかからないということです。個人で試すのも良し、もちろんビジネスにも活用することができます。
ソースコードが公開されているので、独自の用途に合わせてカスタマイズできる点が非常に魅力的です。
(なお、改変したソースを配布する場合には公開する必要があります。)
4.2.高品質な音声合成
Mozilla TTSは前述のとおりディープラーニングを活用しているので、非常に自然なイントネーションや抑揚を表現でき、かなりリアルな音声波形の生成ができると感じています。
加えて、日本語だけでなく、英語やその他の言語にも対応しているため、多言語プロジェクトにも使えますし、学習データを変えることで、声質を柔軟に変更したり、特定の話者の声を再現することもできます。
4.3.カスタマイズ性の高さ
たとえば、自分で録音した音声データを使って独自の音声モデルを作ることができます。これにより、完全オリジナルの「声」を作成することができてしまいます。
また、音声の速さやピッチ、感情表現などの細かい調整も可能で、たとえば、読み上げのスピードを少し遅めにして聞き取りやすくしたり、声のトーンを変えるといった細かい調整も簡単にできます。
その他、開発者としては、APIやスクリプトを使えばさまざまなアプリと連携ができるので、ビジネスなどでも活用がしやすいです。
4.4.ローカル環境で動作可能
もう一つの大きなポイントは、ローカル環境で動作するということです。最近の高品質な音声合成システムの多くはクラウドベースですが、Mozilla TTSはオフライン環境でも動かせます。
インターネット接続が不要なので、今回のように「まずはローカル環境で試してみたい」といった学習目的には最適です。
ビジネスで考えると、セキュリティが重要なプロジェクト、プライバシー保護が必要なデータを取り扱うビジネス、ネットワーク環境が不安定な場所などで活躍できるのではないでしょうか。
4.5.開発コミュニティの存在
最後に触れたいのは、やはり開発コミュニティの存在です。Mozilla TTSの場合、GitHub上で定期的にアップデートがされているだけでなく、公式ドキュメントやチュートリアルが充実しています。
その他、ネットにも情報が多いので、他の開発者と情報を参照しながら解決できるのが心強いポイントです。
次回は、「Mozilla TTSを動かしてみよう。- 第二回 -」を記載していきます。お楽しみに。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
納品後は「Webサイト運用管理サービス(保守)」を締結しますので、納品後の運用やメンテナンスなどワンステップで対応。お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!(税別)で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル