Cloud Speech-to-Text

リクエスト

フィールド  
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": "情報|ジョーホー" }
          ]
      } ]
  } ]
}
RecognitionConfig  |  Cloud Speech-to-Text API  |  Google Cloud

サンプルコード

この例では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