
【Text to Podcast】Text to Speech のエンジンを変更
この記事は【Text to Podcast】の開発ブログです。
Text to Speech エンジンを変更しました。
初期バージョンでは、 OpenAI のAudio Model を利用した Text to speech 機能を利用して原稿を読んでもらっていました。
新バージョンでは Google Cloud Speech-to-Text へ変更しました。
Text-to-Speech AI: Lifelike Speech Synthesis | Google Cloud
OpenAI Audio Model の感想
僕が感じた OpenAI Audio Model のメリット・デメリットは下記です。
デメリット
独特な合成音声感がある
日本語がとても流暢な外国人のようなイントネーション(学習データのせい?)
コスト
メリット
多言語対応(日本語と英語が混ざっていても問題ない)
Google Cloud Speech-to-Text への変更理由
デメリットで声質やイントネーションが少し気になると書きましたが、それは然前問題ないクオリティでした。しかし、料金が $15.00 / 1M characters という設定で、原稿を読んでもらうと意外とお金がかかりました。
下記は Zapier を動かし始めた最初の日の料金です。

開発途中のため試行錯誤をしていたのもありますが、1日で $1 を超えてしまったので、コスト的に厳しそうということで、乗り換えを決断しました。
Google Cloud Text-to-Speech
Google の Text to Speech は、最新の Neural2 という Type を利用すると、日本語も OpenAI より流暢です。しかし、言語は API Call 時に指定しないといけないため、日本語の設定で英単語を読ませるとカタコト英語になります。
料金も毎月100万文字までは無料で利用でき、無料枠を使い切っても1 バイトあたり 0.000016 米ドルなので、 OpenAI よりは安く済みそうです。
サンプルで実際に配信している音声を貼っておきます。
https://storage.googleapis.com/tech-podcast/audio/2024/05/07/c9dda6c60d2c2777442f43553f742fde.mp3
実装
実装は python で Text to Speech API を叩き、結果の audio ファイルを GCS に置くコードを書いて、 Google Cloud Functions へ up しました。
この Cloud Functions を Zapier の webhook を利用して叩き、 GCS の URL を返してもらい RSS に含めるという感じで実装しました。
最後に
コストダウンは徐々にやりつつも、運用に毎月お金がかかるので、面白と思っていただけた方は、「記事をサポート」で支援していただけるとありがたいです。