Google Home mini に任意の文章を読み上げさせるために https://github.com/ikasamah/homecast をいじって使ってましたが、これは https://translate.google.com/translate_tts?client=tw-ob&ie=UTF-8&q=テスト&tl=ja といった Google 翻訳の非公式(?) API にアクセスしていました。その後、Google は Cloud Text-to-Speech サービスを発表したので Go でこの API を使ってみます。
cloud.google.com/go/texttospeech/apiv1 を使えば良さそうです。これを使った例もあったので参考にさせていただきました。
Google Cloud Developer Console でプロジェクトを作成し、Cloud Text-to-Speech API を有効にし、サービスアカウントを作って JSON 形式の秘密鍵をダウンロードします。 GOOGLE_APPLICATION_CREDENTIALS
という環境変数にこの JSON ファイルへの PATH を設定します。(アプリケーションに認証情報を提供する)
go get
go build
echo "テキストメッセージ" | ./tts
このようにすることで speech.mp3 というファイル(出力先ファイルは -o
オプションで指定可能)が作成されます。-v
で voice name を指定できます、日本語は ja-JP-Wavenet-A
or ja-JP-Standard-A
の2つが指定可能で、Wavenet はより高品質らしいが料金も高い (料金体系)