Search code examples
phpspeech-recognitiongoogle-api-client

Google Speech to Text api client return without exception but no actual results


I am using sample code from googles site and this throws no exceptions but returns no results.

If I use the API explorer the same data works just fine. I have tried different files (all from google sample code) different settings. All of which give me the same result, Nothing.

function transcribe_sync($content)
{
    // set string as audio content
    $audio = (new RecognitionAudio())
        ->setContent($content);
    // set config
    $encoding = AudioEncoding::LINEAR16;
    $sampleRateHertz = 32000;
    $languageCode = 'en-US';
    $config = (new RecognitionConfig())
        ->setEncoding($encoding)
        ->setSampleRateHertz($sampleRateHertz)
        ->setAudioChannelCount(1)
        ->setMaxAlternatives(1)
        ->setLanguageCode($languageCode);

    // create the speech client
    $client = new SpeechClient();
    try {
        $response = $client->recognize($config, $audio);
        echo $response->getResults()
    }
    catch (\Exception $e) {

        $this->handleError('Error determining recognition. ' . $e->getMessage());
    }
    finally {
        $client->close();
    }

Solution

  • My resolution to this issues was the way I was passing the file (don't think the file was being populated correctly or at all). It was weird that I did not get an error. Because of the length of my audio files, I ended up integrating google storage to upload the file () and used:

    $audio = (new RecognitionAudio())->setUri("gs://...");
    ... longRunningRecognize($config, $audio);
    

    Hope this helps someone.