Google\Cloud\Speech\SpeechClient::recognize PHP Method

recognize() public method

The Google Cloud Client Library will attempt to infer the sample rate and encoding used by the provided audio file for you. This feature is recommended only if you are unsure of what the values may be and is currently limited to .flac, .amr, and .awb file types. The sample rate cannot be inferred from audio provided from a Google Storage object. Example: $results = $speech->recognize( fopen(__DIR__ . '/audio.flac', 'r') ); foreach ($results as $result) { echo $result['transcript']; } Run with speech context, sample rate, and encoding provided $results = $speech->recognize( fopen(__DIR__ . '/audio.flac', 'r'), [ 'encoding' => 'FLAC', 'sampleRate' => 16000, 'speechContext' => [ 'phrases' => [ 'The Google Cloud Platform', 'Speech API' ] ] ]); foreach ($results as $result) { echo $result['transcript']; }
See also: https://cloud.google.com/speech/reference/rest/v1beta1/speech/syncrecognize#SpeechRecognitionAlternative SpeechRecognitionAlternative
See also: https://cloud.google.com/speech/reference/rest/v1beta1/speech/syncrecognize SyncRecognize API documentation
See also: https://cloud.google.com/speech/reference/rest/v1beta1/RecognitionConfig#AudioEncoding AudioEncoding types
See also: https://cloud.google.com/speech/docs/best-practices Speech API best practices
public recognize ( resource | string | StorageObject $audio, array $options = [] ) : array
$audio resource | string | Google\Cloud\Storage\StorageObject The audio to recognize. May be a resource, string of bytes, or Google Cloud Storage object.
$options array [optional] { Configuration options. @type int $sampleRate Sample rate in Hertz of the provided audio. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that's not possible, use the native sample rate of the audio source (instead of re-sampling). **Defaults to** `8000` with .amr files and `16000` with .awb files. If the getID3 library has been installed this value will **default to** the value read from the file's headers (if they exists). @type string $encoding Encoding of the provided audio. May be one of `"LINEAR16"`, `"FLAC"`, `"MULAW"`, `"AMR"`, `"AMR_WB"`. **Defaults to** `"FLAC"` with .flac files, `"AMR"` with .amr files and `"AMR_WB"` with .awb files. @type int $maxAlternatives Maximum number of alternatives to be returned. Valid values are 1-30. **Defaults to** `1`. @type string $languageCode The language of the content. BCP-47 (e.g., `"en-US"`, `"es-ES"`) language codes are accepted. **Defaults to** `"en-US"` (English). @type bool $profanityFilter If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. \"f***\". **Defaults to** `false`. @type array $speechContext Must contain a key `phrases` which is to be an array of strings which provide "hints" to the speech recognizer to favor specific words and phrases in the results. Please see [SpeechContext](https://cloud.google.com/speech/reference/rest/v1beta1/RecognitionConfig#SpeechContext) for more information. }
return array The transcribed results. Each element of the array contains a `transcript` key which holds the transcribed text. Optionally a `confidence` key holding the confidence estimate ranging from 0.0 to 1.0 may be present. `confidence` is typically provided only for the top hypothesis.
    public function recognize($audio, array $options = [])
    {
        $response = $this->connection->syncRecognize($this->formatRequest($audio, $options));
        return isset($response['results']) ? $response['results'][0]['alternatives'] : [];
    }