Cloud Speech API を使用すると、80 以上の言語で音声ファイルの音声をテキストに変換できます。
このラボでは、音声ファイルを録音し、音声文字変換のために Cloud Speech API に送信します。
学習内容
- Speech API リクエストを作成し、curl で API を呼び出す
- さまざまな言語の音声ファイルを使用して Speech API を呼び出す
必要なもの
このチュートリアルをどのように使用されますか?
Google Cloud Platform のご利用経験について、いずれに該当されますか?
セルフペース型の環境設定
Google アカウント(Gmail または Google Apps)をまだお持ちでない場合は、アカウントを作成する必要があります。Google Cloud Platform Console(console.cloud.google.com)にログインして、新しいプロジェクトを作成します。
プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud プロジェクトを通じて一意の名前にする必要があります(上記の名前はすでに使用されているので使用できません)。以降、このコードラボでは PROJECT_ID
と呼びます。
次に、Google Cloud リソースを使用するために、Cloud Console で課金を有効にする必要があります。
この Codelab を実施した場合、費用は数ドルを超えることはありませんが、より多くのリソースを使用する場合や、実行したままにしておくとさらにコストがかかる場合があります(このドキュメントの最後にある「クリーンアップ」セクションをご覧ください)。
Google Cloud Platform の新規ユーザーは 300 ドル分の無料トライアルをご利用いただけます。
画面の左上にあるメニュー アイコンをクリックします。
プルダウンから [API とサービス] ダッシュボードを選択します。
[API とサービスの有効化] をクリックします。
次に、検索ボックスで「話し声」を検索します。[Google Cloud Speech API] をクリックします。
[有効にする] をクリックして、Cloud Speech API を有効にします。
有効になるまで数秒待ちます。有効にすると、次の画面が表示されます。
Google Cloud Shell は、Cloud 内で動作するコマンドライン環境です。この Debian ベースの仮想マシンには、必要な開発ツール(gcloud
、bq
、git
など)がすべて揃っており、永続的な 5 GB のホーム ディレクトリが用意されています。Cloud Shell を使用して Speech API へのリクエストを作成します。
Cloud Shell の使用を開始するには、ヘッダーバーの右上の [Google Cloud Shell をアクティブにする] アイコンをクリックします。
コンソールの下部の新しいフレーム内で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。user@project:~$ プロンプトが表示されるまで待ちます。
ここでは、curl
を使用して Speech API にリクエストを送信するため、リクエストの URL で渡す API キーを生成する必要があります。API キーを作成するには、プロジェクト ダッシュボードの [API とサービス] の順に移動します。
[認証情報を作成] をクリックします。
プルダウン メニューで [API キー] を選択します。
生成した鍵をコピーして [閉じる] を選択します(鍵を制限しないでください)。
これで API キーができました。各リクエストに API キーの値を挿入せずに済むように、環境変数に API キーを保存します。環境変数にキーを保存するには、Cloud Shell で次のように入力します。<your_api_key>
は、コピーしたキーに置き換えてください。
export API_KEY=<YOUR_API_KEY>
Speech API へのリクエストは、request.json
ファイルで作成できます。このファイルを作成して編集するには、任意のコマンドライン エディタ(nano、vim、emacs)を使用するか、Cloud Shell の組み込みのウェブエディタを使用します。
作成したファイルをホーム ディレクトリに作成し、簡単に参照できるようにして、request.json
ファイルに次の行を追加します。
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
リクエストの本文には config
オブジェクトと audio
オブジェクトが含まれます。config
では、リクエストの処理方法を Speech API に指示します。encoding
パラメータは、API に送信する音声ファイルに対して使用しているオーディオ エンコードの種類を API に指示します。FLAC
は .raw ファイルのエンコード タイプです(エンコード タイプの詳細については、ドキュメントをご覧ください)。config
オブジェクトには他にもパラメータを追加できますが、encoding
だけは必須です。リクエストに省略すると、languageCode
はデフォルトで英語に設定されます。
audio
オブジェクトでは、Cloud Storage 内の音声ファイルの URI または base64 でエンコードされた音声を文字列として渡すことができます。ここでは Cloud Storage の URL を使用していました。次に Speech API を呼び出します。
これで、次の curl
コマンド(1 つのコマンドラインですべて指定)を使用して、リクエスト本文と前に保存した API キー環境変数を Speech API に渡すことができるようになりました。
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
この curl
コマンドで返されるレスポンスは、次のようになります。
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
transcript
値は、Speech API による音声ファイルのテキスト音声文字変換を返します。confidence
値は、API が音声を正確に文字変換したことを示します。
上記のリクエストで recognize
メソッドを呼び出しています。Speech API は、同期と非同期の両方の音声文字変換をサポートしています。この例では、完全な音声ファイルを送信しましたが、longrunningrecognize
メソッドを使用すると、ユーザーが話している間にストリーミング音声文字変換をテキストに変換することもできます。
Speech API は 100 以上の言語の音声文字変換をサポートしているので、多言語対応が可能です。languageCode
パラメータは request.json
で変更できます。サポートされている言語の一覧については、こちらをご覧ください。
フランス語の音声ファイルを試してみましょう(プレビューをご希望の場合はこちらからお聴きいただけます)。request.json を次のように変更します。
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
次のようなレスポンスが表示されます。
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
これは、フランスで人気のある物語の一文です。他の言語の音声ファイルがある場合は、Cloud Storage に追加してリクエストの languageCode
パラメータを変更してみてください。
このラボでは、Speech API で音声文字変換を行う方法を学びました。この例では、音声ファイルの Google Cloud Storage URI を API に渡しています。別の方法として、base64 でエンコードされた音声コンテンツを渡すこともできます。
学習した内容
- Speech API に音声ファイルの Google Cloud Storage URI を渡す
- Speech API リクエストを作成し、curl で API を呼び出す
- さまざまな言語の音声ファイルを使用して Speech API を呼び出す
次のステップ
- ドキュメントで Speech API のチュートリアルをご覧ください。
- Vision API と Natural Language API をお試しください。