
Mozilla TTSを動かしてみよう。- 第二回 –
忙しくて、なかなかブログが書けませんでした…。
今回は、「Mozilla TTSを動かしてみよう。- 第二回 -」です。
前回のブログでは、音声合成の歴史や技術、そしてライセンスフリーで利用できる音声合成エンジンについて記載してみました。今回は、「Mozilla TTS」自体にフォーカスし、その概要や技術的な側面について記載していこうと思います。ただ、生成AIを使いながら書いているので、あくまで参考程度で。
1. Mozilla TTSの概要
Mozilla TTSとは、前回も記載した通り、ディープラーニングを活用したオープンソースの音声合成エンジンです。Mozillaでは、オープンソースで誰でも使える音声技術(音声認識/音声合成等)を提供することを目指しており、Mozilla TTSはその一部です。
また、Mozilla TTSの開発や利用されている音声データセットは、Mozilla「Common Voice」プロジェクトで収集された膨大な音声データを活用して開発されています。
「Common Voice公式サイト」
https://commonvoice.mozilla.org/ja
「Mozilla TTS GitHubリポジトリ」
https://github.com/mozilla/TTS
Common VoiceとMozilla TTSは、オープンソースの理念で展開されており、音声技術の民主化によって、音声技術を発展させることを目的にしています。
特徴としては以下があげられるかなと思います。
ディープラーニングの事前学習済みの多くの高品質なモデル(声)が利用できる
日本語も含む多言語に対応
ローカル環境で動かす事ができる
独自の音声モデルを学習させる事も可能
→ こちらはおいおい実際に試してみて、その結果をまた記載します
ローカル環境で動かせるのでセキュリティが厳しい環境での実装や、独自の音声モデルも生成できるので、自分の声などを音声モデルとして生成することができます。
ブラウザなどでも音声合成機能は普通に実装されていますが、こういった観点で何か特殊な環境で活用できる術があるのではないかなと思います。
2. Mozilla TTSの歴史
2.1.きっかけ
Mozilla TTSの開発は、2017年頃にMozillaの「Common Voice」プロジェクトと並行して開発が進められています。
Mozillaの「Common Voice」は、オープンソースの音声データセットを構築するプロジェクトであり、音声合成(TTS)と音声認識(ASR)の技術を支援する目的で開始されました。
その当時、オープンソースの音声合成エンジンが少なく、また、ディープラーニング技術が出始めてきており、これらがきっかけで音声合成の民主化を目指し、Mozilla TTSは開始されています。
その当時は、Google社Tacotron(タコトロン)、DeepMind社WaveNet(ウェィブネット)といった技術は、特定の企業が自社で開発したソースコードであり、自由に利用・改変できないため、これに対抗できるオープンな代替え手段を提供しようという事で開始されています。
そこで、Mozilla TTSでは、学術論文などからTacotron2に基づくニューラルTTSモデルを独自開発を開始しました。
(本当に、このコミュニティは凄すぎます。)
2.2.Tacotron2、WaveRNN、PyTorch(パイトーチ)
Tacotron2は、テキストをメルペクトグラム(音声特微量:音声の特徴を数値化したもの)に変換する仕組みで、WaveRNNは、ボコーダーと呼ばれ、メルスペクトログラムを音声波形に変換する仕組みです。
PyTorch(パイトーチ)とは2016年頃にMeta社がオープン化したソースで、機械学習やディープラーニング(深層学習)向けのオープンソースライブラリです。現在は、Linux Foundation配下の財団で管理されています。
2019年頃に、この3つの仕組みが続々とエンハンスされ、合成速度の向上や、音質の向上(特にノイズ除去)、マルチスピーカー対応などが、どんどんされていきました。
その後は、2021年頃には、以下のような高品質ボコーダー(※)を導入し、
Tacotron 2 + WaveRNN → Tacotron 2 + WaveGlow
さらには、
HoFi-GAN(※)のサポート追加によって、よりリアルな音声合成が実現できました。
ボコーダーとは、Voice Encoderの事で声の音声信号を解析して特定の特性を抽出して音声として合成する技術の事です。
HoFi-GANは、High-Fidelity Generative Adversarial Networkの略で、ディープラーニングを用いたニューラルボコーダー(Neural Vocoder)の一つで、GANは敵対的生成ネットワークを指し、これを活用することで高品質な音声波形を生成するモデルです。
この頃には、実用的なTTSエンジンとしての品質が向上し、より多くの開発者に利用されるようになりました。
2.4.Coqui(コキ) TTSという新しいオープンソースプロジェクトへスピンオフ
MozillaはもともとオープンソースのWeb技術開発を主軸とする事業者ですが、この頃から経営合理化が進められました。
2020年の8月にはレイオフなどもあったので、Mozilla TTSやCommon Voiceなどのプロジェクトも縮小対象になったようです。
また、収益の柱が、Mozilla Firefoxブラウザのデフォルト検索エンジンの契約(Googleからのライセンス料)なので、どうしても音声技術の優先度が低下せざる負えませんでした。
そのため、音声技術の開発よりもWebブラウザやプライバシー技術に注力する方向になり、Mozilla TTSは Coqui TTSへ完全にスピンオフしました。
Coqui(コキ) TTSは、音声認識も統合し、商用利用を含めた発展を目指すものですので、ライセンス形態がより商用利用しやすい、MITライセンスに変更されています。
MITライセンスとは以下です。
商用利用OK
改変・再配布OK
コードの公開義務なし
企業向けプロジェクトにも簡単に組み込み可能
一方で、Mozilla TTSのMPL-2.0(Mozilla Public License 2.0)は、コードを改変した際には公開義務があります。
商用利用 OK(ただしMPL部分のコードは公開義務あり)
改変 OK
MPL 以外のライセンスと組み合わせ可能(Apache, MIT など)
MPL ライセンスのコードを変更して配布する場合、その部分のソースコードを公開する義務がある
(なお、今回は先にMozilla TTSに手を付けてしまったのでMozilla TTSをメインでブログを記載しています。そのうちCoqui TTSも時間があれば動かしてみる予定です。)
3.Mozilla TTSのライブラリ構成
ここでは、Mozilla TTSのライブラリ構成について説明していこうと思います。
Mozilla TTSを動かすには、Mozilla TTSの本体となる「コアライブラリ」と、それを動かすために必要な「依存パッケージ」から構成されています。
3.1 Mozilla TTSのコアライブラリ
Pythonのパッケージ管理ツール(pip install TTS)を使って、インストールすると導入されるコアライブラリは以下です。
1.TTS
その名の通り、Mozilla TTSのメインパッケージです。テキストを音声に変換する機能を提供しており、モデルの学習(トレーニング)、推論(Inference)による音声合成、モデルの設定と管理ができます。
2.Config Manager
こちらも、その名の通り設定ファイル(YAML形式)を管理します。設定ファイルを使い、モデルやトレーニングパラメータを柔軟に指定ができるようになっています。
3.Vocoder
メルスペクトログラムから音声波形を生成する重要なモジュールです。WaveNet、HiFi-GANなどのモデルが利用できます。
4.Datasets
音声合成モデルの学習に必要なデータセットを扱うライブラリ群です。データセットの前処理やテキストと音声データのペアリングを管理しています。
3.2 依存パッケージ
TTS ライブラリが動作するためには、多数の依存パッケージが必要です。以下は、インストールされる主要な依存パッケージとその概要です。
1.PyTorch
深層学習の計算ライブラリで、Mozilla TTSのモデル学習や推論の基盤となっています。また、GPUを利用した高速な計算などをサポートしています。
2.numpy
こちらは、数値計算ライブラリです。音声信号の処理やモデルの計算などで使用しています。
3.scipy
こちらは、科学計算ライブラリで、音声データの加工やフィルタリングに利用しています。
4.torchaudio
PyTorch用の音声処理ライブラリです。音声データのロードや変換に使用しています。
5.librosa
音声信号処理ライブラリです。特徴量抽出(例:メルスペクトログラムやMFCC)や音声のリサンプリングに利用しています。
6.tensorboard
モデルのトレーニング過程を可視化するツールです。学習中の損失値やモデルの進捗を確認できます。
7.pydub
音声データの操作(例:切り取り、結合)を簡単にするライブラリです。入力音声データの加工に使用することがあります。
8.progressbar
モデル学習や音声合成時の進行状況を視覚的に表示してくれるものです。
9.sentencepiece
音声モデルが言語データを効率的に処理するためにテキストのトークン化(分割)に使用しています。
10.transformers
自然言語処理用のライブラリで、テキスト処理や事前学習済みモデルの利用に役立つものです。
本日はここまで。
次回の第三回は、Mozilla TTSの導入から動かし方まで記載いたします。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
納品後は「Webサイト運用管理サービス(保守)」を締結しますので、納品後の運用やメンテナンスなどワンステップで対応。お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!(税別)で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル