google homeを自分で作れるという、google aiy voice kitを買って色々と遊んでいたら、Google Cloud Speech API から結構な請求が来たという話。
assistantを使って普通に「OK google」って言っているだけなら請求はありません。
Google Cloud Speech APIでも普通の使いかたをしていれば、請求があっても微々たるものだと思います。
今回やろうとしたのは、「OK google」を変えたかった。また、assistant的な機能も全部自前で用意すればいいと思っていた。本家assistantのように賢いもんじゃなくて、自分の定義したものだけやってくれれば十分だと思ったから。
「おい!箱!」
「電気消して」
で十分だと思っていた。
https://aiyprojects.withgoogle.com/voice
こちらの手順に従って組み立てたり、インストールを行い、「OK google」の反応までは出来た。英語だけど。
でその後に、cloudspeech_demo.pyってサンプルがあって、Cloud Speech APIを使うのだが
1 2 3 4 5 |
while True: print('Press the button and speak') button.wait_for_press() # <= ここのボタン検知を外すことを考えた print('Listening...') text = recognizer.recognize() |
ボタンを押すのが面倒だから、音声認識にすればgoogle assistantと変わらんやんと思って、
1 2 3 4 5 6 7 |
while True: led.set_state(aiy.voicehat.LED.OFF) print('Press the button and speak') # button.wait_for_press() print('Listening...') text1 = recognizer1.recognize() if 'おい 箱' in text1: |
ボタン検知を外して、直接音声を待ち受けるようにした。
はい。これが間違いです。
Cloud Speech APIは、1月に1時間までは無料という料金設定です。上のように常時hotword(OK googleや「おい!箱!」)を待っている場合、延々課金されることになります。
薄々危険かなと思っていたのだが、一晩放置して、次の日確認したところ、請求額がななんと
6000円オーバー
年を越せそうにありません(T_T)
たぶん30時間以上動かしていたと思う。
サンプルでわざわざボタンを押してから、しゃべるようになっていたのは意味があったのです。
また、たぶんですがassistantの「OK google」の検知は、ローカルでの処理と思われます。「OK google」をローカルで検知した後の、音声処理のみクラウドを使っているはずです。
もし自前でこれをやるのであれば、hotword(OK googleや「おい!箱!」)の検知は、Juliusでやって、その後は、Cloud Speech APIってのがスマートでお金もかからないと思います。
これを自分で作ろうかと思ったのですが、ひょんなことからGoogle Home miniを買ってしまって、「もーこれでいいじゃん」と満足してしまったので自分は作りそうにありません。
無知ってコワイ。無知ってお金がかかる。
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)