Google Home 買ったので、マッチョな男の人に喋らせました。(C#, Azure Functions)
ちょまどさん (@chomado) のような筋肉を感じる声に変えてもらいましょう!
Google Assistant 系のアプリは Node.js でやってる人が多いのですが、これは C# で書いてます。(私は C# 好き過ぎて Microsoft 入社しました。)
(最初は node.js で書いていたのですが、途中で全部消して C# で書き直しました)
公開3日で 3.4万再生されました!
[https://twitter.com/chomado/status/974534165419892736]
↑ ぜひ音アリで見てください!
ユーザ「OKグーグル、筋肉ボイス」
「はい、筋肉ボイスに繋ぎます」
ユーザ「私の名前はちょまどです」
(イカツイ声で)「私の名前はちょまどです」
Microsoft のクラウドサービスである「Microsoft Azure (アジュール)」などを使ってるよ!
自然言語解析エンジン
の Dialogflow
(一応挟んでるけど、今回は発した言葉のオウム返しなので、あんまり処理は書いてない。Webhook に飛ばす綱渡しのために入れてる)サーバーレス
のサービスである Azure Functions (アジュール・ファンクション)。ここで自分の書いたプログラムが動くことになるtext to speech
のサービス「VoiceText Web API」ファイル置き場
の Azure Storage (アジュール・ストレージ)Google Assistant
「"ちょまどだよ" って言ったわ」Dialogflow
「Webhook に飛ばすわ」Azure Functions
に書いた私のコード「"ちょまどだよ"って来たわ。音声変換APIに飛ばすわ」VoiceText Web API
「mp3 に変換して返すわ」Azure Functions
に書いた私のコード「mp3来たからクラウド上のストレージに保存しておいて、その保存先のURL貰うわ」Azure Storage
「保存したよ。アクセスするためのURLはこれだよ https://-----」Azure Functions
に書いた私のコード「Google Home (の上で動いてる Actions on Google)に mp3 渡して読み上げてもらうわ」Google Home
「(野太い声で)ちょまどだよ」メインのプログラムは /ChomadoVoice/GoogleHome.cs です。
「Google Home で動くアプリを C# で開発する」事前知識として、Microsoft 社エンジニアのかずきさんによる、こちらの記事がオススメです。
Google アシスタントアプリを開発する時に Fulfillment の先を C# で開発する方法
ーー
私のこの README が不親切過ぎたようで、有志が続々と「筋肉ボイスを動かすための解説記事」を書いてくれています。ありがとうございます!!
「筋肉ボイス」を動かしてみる|Qiita !やすいさんありがとうございます!
追記その2:MS MVP の前村さんが記事を書いてくださいました!ありがとうございます!
ちょまどさんの筋肉ボイスを動かしてみた|つくるの大好きブログ
追記その3:しょうさんありがとうございます!これかなり詳細な記事で本当に素晴らしい
ちょまどさんの筋肉ボイス動かしてみた|SHO Tech Lab
ーー
書いたコードは全て上げていますが、
各種使用サービスの APIキーなど、秘密にするべきものはもちろん public に上げていません。
なので、clone 後、以下の手順を踏む必要があります。
(この手順書はまだ途中です!あとで完成させます)
↓ Microsoft Azure で作った「ストレージアカウント」を開くと、最初はこんな画面である。
ちなみに、我々は、この「ストレージアカウント」の中の「Blob (Binary Large OBject) Storage
」という機能だけ使うことになる。現段階では mp3 突っ込むだけなので。
↓ この左の「アクセスキー」をクリックして、以下2か所からコピーして メモ帳アプリかどこかに控えておく。
また、Google 側からアプリを呼び出すために、
これで Azure 側に作ったエンドポイントを Google の Dialogflow の Webhook のエンドポイントに入れておくのが大切です