(google home notifierの声を変えたいだけの人は読み飛ばしてください)
年末安かったのでGoogle Home miniを買いました。
最初なのであんまりできることないだろうなーと思いつつ、こういう流行り物ガジェットは触っておきたいものです。
で、嬉しい誤算だったのは Google Homeはかなりカスタマイズというか、自由にハックできるということです。
アレクサさんもIFTTTと連携したりは出来るんですが、もともと想定されてないことだとほとんどできないんですよね・・・。
アレクサと比べて特にGoogle Homeの一番いいところというのは、ユーザーがゴニョゴニョすることで自由に喋らせられるところです。
個人的には、この1点でアレクサと大きく差が付いています。
- 任意のタイミングで自分にお知らせしてくれる
- 雨が振りそうになったら話してくれるとか
- 自分で作ったコマンドで何かしてくれる
- 公式に対応していないリモコンで「6時間後に寝室のエアコンを付けて」みたいな複雑な命令が出せる
まあそんなこんなでとても便利なのですが、1つ問題がありました。
Google Homeに喋らせるライブラリが google home notifier(ghn)というものでして、先人が作ってくれたグレートなやつです。
ただ問題は、声がすごい微妙ということなんですよね・・・。
通常のGoogle Home、アレクサが喋る声は機械音声ですがかなり自然でいい感じです。
が、ghnで喋らせると一昔前のの機械音声になってしまいます。
ということで、これをなんとかしたい(した)という話です。
どうして google home notifierだと変な声になるのか
これはghnがGoogle翻訳でも使われているAPIを使って音声を作り、それを送って喋らせているからです。
なのでどれくらい変かはGoogle翻訳で適当な文字列を入れると聴くことが出来ます。
じゃあ、別のAPIで音声ファイルを作って、それを喋らせればいいんじゃないか?と考えました。
ていうことで探してみました。結果的にいうと、VoiceTextが最高です。
今までの機械音声で聞いたことのない、ほんとの声優さんに喋ってもらってる感じだと思いました。
下のサイトでは文、感情を自由に設定してでしゃべらせることができるので、ぜひ Hikariちゃんで感情を喜びマックスにして聞いてみてください。
最高なのはもう1つ、APIが無料で使えることです(商用不可など制限あり)
ちなみにDocomoのAPIでもVoiceTextが使えるのですが、感情表現が付けられないのでパスしました。
てことで、これを使います。
google home notifierで VoiceTextを使う
自分で google home notifierを改造して使えるところまでやったのですが・・・うちで動かす
サーバーが NAS上ということで、普通の人には関係ない改造が必要でした。
(DNSライブラリがNAS上でどうしても使えなかったので、直IP専用にしたのと、音声ファイルを返す部分を実装した)
で、自分で作ってから見つけたのですが、まさに同じことを考えて同じ方法を使った方がおられました。
この方の方法だと単純に入れ替えるだけで使えると思います・・・が、音声ファイルを
返す部分のみちょっと実装しないといけないかもしれません。
自分の改造の場合だとNAS上にファイルを生成するようにして、ファイルを返す部分をexample.jsにを実装してました。
もう一つ最近見た、ちょまどさんも同じ方法のようですね。
こちらはAzureサーバーに音声ファイルを置いてGoogle Homeからアクセスする方法です。
感想
唯一の不満が解消されて、Google Homeがしゃべるのが楽しみになりました。
むしろすべてこの声で喋って欲しいです。
ちなみに喋らせるときはこちらの方法を使っています。
sayコマンドを作ってVoiceText+google home notifierで喋らせるようにし、IFTTT、Slack経由で自由に喋らせます。
上記ライブラリ方法でシステムを作るとGoogle Homeでできることがものすごく柔軟に設定できて、これも最高です。
ということで、Google HomeにVoiceTextで喋らせるのはとてもオススメです。