テキスト音声合成(Text to Speech)の始め方
テキスト音声合成を利用する
書いた文章を自然な日本語で読み上げることができれば、それを使ってナレーションを作成できます。ただ、講座の解説テキストなどを正しく読み上げさせるには、Youtubeでよく耳にする程度の品質では十分ではありません。読み上げミスや不自然なイントネーションを生成しないことが、とても重要だからです。
いろいろ試してみたところ、フリーのソフトウェアやサービスには、十分に満足できるものはありませんでした。本当に自然な発声を得るには、有料サービスを使う以外に選択肢はないようです。ただ、有料サービスの価格はかなり安いことがわかりました。使い方も簡単でした。
課金の仕組み
では、一体、どれくらいのコストがかかるのでしょう?
実は、予想よりもとても安かったので驚いてしまいました。私はMicrosoft のAzure AIサービスを利用して、16時間を超えるビデオコースを作りましたが、毎月の支払は数百円でした。
驚きましたか? Azure AIには、毎月の無料枠(50万文字まで)があるので、併用するとそれくらいの支払いにしかならないのです。ちなみに、有料枠でも「標準音声: 1,000,000 文字あたり $4.00」です。
制御言語(SSML)により文字数が増加する
もっとも、50万文字は純粋にテキストの文字数ではなく、音声に変換するために使われる制御言語(SSML)の文字数も含むようで、テキストの4倍くらいになります。3分程度にあたる1000文字のテキストでも、課金対象文字数としては4000文字以上になります。
確認のための発声再生も課金される
そして、作成中に何度か合成音声を聞いて確認するのですが、発声は変換と同じなので課金されます。頻度にもよりますが、確認のために発声した分も文字数に加えられるので、テキストが4000文字程度であっても、最終的にその3倍程度(1200文字程度)にはなるようです。
節約するには、毎回全体を発生させるのではなく、確認したい部分だけを選択して発声させるとよいでしょう。
無料枠と有料枠でデータの共有はできない
また、Azure AIサービスでは、利用する管理単位としてリソースというのを作らなくてはいけないのですが、無料枠と有料枠では異なるリソースを使います。
毎月の無料枠を使い切ったら、有料枠のリソースに切り替えて作成しますが、無料枠と有料枠のリソースはデータを共有できないので、作成した音声は別々に管理しなくてはいけません。これは少し不便でした。
利用開始の方法: 使ってみませんか?
いろいろ注意することはあるのですが、Azure AI サービスの品質はかなり優れています。利用料金も決して高くありません。また、毎月50万文字未満しか使わなければ、無料で利用できます。有料でも、100万文字で4ドルです。
ではどうやって利用するのかというと、大まかには、次の手順です。ただ、手順はときどき変わってしまうので、詳細はAIに聞くのがいいでしょう。詳しく教えてくれます。
1.Azureアカウントを作成する
2.Speech リソースを作成する(Azureポータル https://portal.azure.com)
「リソースの作成」をクリックし、「Speech」を検索して選択します。 「作成」をクリックし、以下の情報を入力します。
(1) サブスクリプション: Azureサブスクリプションを選択します。
(2) リソースグループ: 新しいリソースグループを作成する。
(3) リージョン: 音声サービスを利用するリージョンを選択します。(例:東日本とか西日本など)
(4) 名前: Speechリソースの名前を入力します。(myresource1など適当に)
(5) 価格レベル: 必要に応じて価格レベルを選択します。(有料枠はS0、無料枠はF0です)
「確認および作成」をクリックし、デプロイが完了するまで待ちます。
これで、テキスト音声合成のサービスを利用できるようになります。
テキストを入力するだけで音声ファイルを出力(Speech Studio)
使い方も、AIに質問すると、大抵、教えてくれます。
ただ、初めての頃、「APIを利用してJavaのプログラムを作成し、テキストを送って音声を取得する」という方法を説明されたので、真に受けてしまい、正直に、Javaでswingを使ってGUIアプリを作ったのですが、単に変換した音声データが必要なだけなら、これはやらない方がいいです。
もっといい方法があるはずだ、と思って調べて行くと、「Speech Studio」というエディタ兼変換器が、ウェブ上で使えることがわかりました。これはとても便利です。
テキストを入力し、いろいろチューニングして、再生ボタンを押すと音声を確認できます。そして、エクスポートを実行すると、音声ファイルを手元にダウンロードすることができます。
音声の選択とチューニングのポイント
日本語の場合、音声は男女5人の声から選びます。ただ、完成度が高いのは、七海さんという女性の音声です。
また、テキストを入力しても、そのまま利用できる音声になるわけではありません。より自然な音声にするためには、最低限、次のようなチューニングが必須です。
- 発声の速度
- 四文字熟語
- 日本語に混在する英語の単語
- 句読点
- 中断時間
- イントネーションの調整(ただし操作が難しい)
ゆっくりした速度になるので、標準の1.05~1.08倍くらいに速くするといいようです。「ピッチ」という編集項目で操作できます。
また、4文字熟語は、不自然な発音になることが多いです。すべてカタカナに直すとうまくいく場合があります。
そして、英語の単語が混ざっている場合も、よく聞くと不自然な発音になります。英語自体は普通に日本語読みしてくれますが、「mainメソッド」のように書いたものはだめです。「main method」と、ひとまとまりの英語に書き直します。それ以外に、英単語を全部カタカナに書き換えてみる、などします。
また、句読点のあるなしは、発声に影響します。読点がないと不明確な発音になる可能性がある一方、多すぎるとこれもまた不自然な間ができたりします。ケースバイケースで、いろいろ試行錯誤する必要があります。さらに、文と文の間にどれくらいの中断(経過)時間をいれるかも、ミリ秒単位で指定できるので、試してみるといいでしょう。
このようなチューニングは、どうしても必要な作業になります。Speech Studioにはいろいろなチューニング機能が備わっているので試してみてください。
まとめ
動画を作って教材にしたり、Youtubeで公開することなどが広く行われるようになりました。一度限りの動画なら、自分で音声をいれる方がいいのでしょうが、更新や追加を行う可能性がある場合は、かなり大変な作業になります。
テキスト音声合成を使って音声を作るようにすると、更新や追加がとても簡単です。メンテナンスして維持していかなければいけない動画では、テキスト音声合成が推奨です。
Microsoft Azure AIのTTS(Text to Speech)で、Speech Studio を使うと、人の発話と変わらない高品質の音声合成が簡単にできます。しかも、とても低料金です。ぜひ、一度トライしてみてください。
次は、Udemy.comで公開しているビデオコースへのリンクです。(少し宣伝が入り恐縮ですが)画面が開いたら、右上にある「このコースをプレビュー」をクリックしてみてください。テキスト音声合成の完成度を確認できます。
参考
使ったことはありませんが、同じようなサービスは、GoogleやAmazonにもあります。助手のクロード君に対照表を作ってもらったので、参考までに掲載しておきます。
一番大事なポイントは、合成された音声の品質と、それをダウンロードして利用できるかです。関心がある方は、試してみてください。
Discussion