フィールド | 型 | |
---|---|---|
encoding | enum (AudioEncodingのいずれか) | FLACまたはWAV以外では必須。サポートされるのは1チャンネル (モノラル) のみ |
sampleRateHertz | number | オーディオ データのサンプリングレート。有効な値は8000~48000。16000が最適 |
languageCode | string | 必須。"en-US"の形式でオーディオの言語を指定する |
maxAlternatives | number | 任意。取得する認識仮説の最大数。有効な値は0~30で、1以下か省略した場合は1つ返される。たとえば3を指定すると、次のように返される
{ "results": [ { "alternatives": [ { "transcript": "こんにちは", "confidence": 0.8977027 }, { "transcript": "今日は", "confidence": 0.6621518 }, { "transcript": "こんにちわ", "confidence": 0.9386606 } ] } ] } |
profanityFilter | boolean | 任意。trueならば、不敬な言葉を"f***"のようにアスタリスクで伏せ字にする。falseか省略した場合は置き換えない |
speechContexts[] | object (SpeechContext) | 任意。認識を助けるための手がかりとなる、文字列のリスト |
enableWordTimeOffsets | boolean | 任意。trueならば、単語ごとの開始時間と終了時間の情報を含む
{ "results": [ { "alternatives": [ { "transcript": "パラ言語情報", "confidence": 0.92081594, "words": [ { "startTime": "0s", "endTime": "0.200s", "word": "パラ|パラ" }, { "startTime": "0.200s", "endTime": "0.200s", "word": "言語|ゲンゴ,ゴンゴ" }, { "startTime": "0.200s", "endTime": "0.500s", "word": "情報|ジョーホー" } ] } ] } ] } |
この例ではAPIキーを使用するため、先にそれをGCP Console (Google Cloud Platform Console) で取得する必要があります。API キーの使用 | ドキュメント | Google Cloud
<?php // オーディオ ファイルを読み込む $filename = 'sample.flac'; $fp = fopen( $filename, 'rb' ); $content = fread( $fp, filesize( $filename ) ); fclose( $fp ); // それをBase64エンコードする $encodedContent = base64_encode( $content ); // JSON形式でリクエスト ボディを生成する $requestBody = <<<EOM { "config": { "encoding": "FLAC", "sampleRateHertz": 16000, "languageCode": "ja-JP" }, "audio": { "content": "{$encodedContent}" } } EOM; $apiKey = '*****'; // APIキー $url = 'https://speech.googleapis.com/v1/speech:recognize?key='.$apiKey; $header = array( 'Content-Type: application/json; charset=utf-8' ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $header ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $requestBody ); curl_setopt( $ch, CURLOPT_FAILONERROR, TRUE ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE ); // リクエストし、結果を出力する if( curl_exec( $ch ) === FALSE ) echo curl_error( $ch ); curl_close( $ch ); // { "results": [ { "alternatives": [ { "transcript": "こんにちは", "confidence": 0.8977027 } ] } ] }Transcribing Short Audio Files | Cloud Speech API Documentation | Google Cloud