経緯
- 先日、
Google Cloud On Board - 入門編トレーニング
に参加してきました - 機械学習の API が紹介されていた
- かねてからテキスト起こしに興味があった(議事録作成が面倒だった)ので、GCP の 無料トライアル で試してみた
- 音声素材は hbSAKABA の #0 での自分の自己紹介 (2:42〜3:08)
今回、利用したもの
- Cloud Speech-to-Text API
- トレーニング済みのAIをすぐに使える
- Google Cloud Storage
- オーディオファイルの置き場として利用
(事前準備)
- GCP の利用登録 (無料トライアル)
- 音声ファイルを用意 (モノラルで!)
流れ
- GCPのプロジェクトを作成
Cloud Speech-to-Text API
を有効化- APIキー作成
- テキスト起しの対象となるオーディオファイルを
Clound Storege
にアップロードCloud Speech API
はオーディオファイルの指定方法としてGoogle Cloud Storage URIs
をサポート
Cloud Speech-to-Text API
で テキスト起こし- REST API に POST
作業ログ
GCPのプロジェクト作成
Cloud Speech-to-Text API
を有効化APIキー作成
オーディオファイルを
Clound Storege
にアップロードCloud Speech-to-Text API
で テキスト起こし実行
$ curl -H "Content-Type: application/json" -d '{"config": {"languageCode": "ja-JP"},"audio": {"uri": "gs://self-introduction-20190223/self-introduction-mono.wav"}}' https://speech.googleapis.com/v1/speech:recognize?key={APIキー}
テキスト起こし結果
$ curl -H "Content-Type: application/json" -d '{"config": {"languageCode": "ja-JP"},"audio": {"uri": "gs://self-introduction-20190223/self-introduction-mono.wav"}}' https://speech.googleapis.com/v1/speech:recognize?key={APIキー} { "results": [ { "alternatives": [ { "transcript": "冷凍店と申しますえーと私は去年の9月にですねハートビーツニンジンさせていただきましてはたくさんの主たる事業としていますと2の開発とリアクトネイティブを使ってフロントの開発をしています", "confidence": 0.9203033 } ] } ] }
- レスポンス(文字起こし結果)を得る事はできた!
手軽にすぐトレーニング済みの AI を使えた
テキスト起こしの結果
- バッチリだった部分もあり、
- リアクトネイティブを使ってフロントの開発をしています
- 面白い結果になってしまった部分もあった
- タムラと申します => 冷凍点と申します
- にジョイン => 人参
- 今回はオーディオファイルの質(滑舌)が良くなかった
- バッチリだった部分もあり、
利用方法の誤りや、結果を改善できる方法があれば、ご教示いただければありがたいです
つまいずいたところ
The request is missing a valid API key.
Invalid JSON payload received. Unexpected token.\nrequest_body.json\n
-d {JSONファイル名}
がうまく行かなかった$ curl -H "Content-Type: application/json; charset=UTF-8" -d request_body.json https://speech.googleapis.com/v1/speech:recognize?key={APIキー}
- コマンドに JSON を直接書くとうまく行った
$curl -H "Content-Type: application/json" -d '{"config": {"languageCode": "ja-JP"},"audio": {"uri": "gs://self-introduction-20190223/self-introduction.wav"}}' https://speech.googleapis.com/v1/speech:recognizekey={APIキー}
- 原因を正しく把握できていないが、utf-8 の JSONファイル の渡しかたに問題がありそう
Invalid JSON payload received. Unexpected token.\nrequest_body.json\n
- Cloud Storage のオブジェクトを 公開 にしていなかった場合もこのエラーになった
Must use single channel (mono) audio, but WAV header indicates 2 channels.
- ステレオのオーディオファイルはサポートされてないので、モノラルのデータを用意する
- tips
補足: Cloud Speech-to-Text API
vs Cloud Machine Learning Engine
Cloud Speech-to-Text API
独自のデータでトレーニングをする場合は TensorFlow + Cloud Machine Learning Engine
- 機械学習の専門知識が必要