You can specify that Speech-to-Text indicate a value of accuracy, or confidence level, for individual words in a transcription.
Word-level confidence
When the Speech-to-Text transcribes an audio clip, it also measures the degree of accuracy for the response. The response sent from Speech-to-Text states the confidence level for the entire transcription request as a number between 0.0 and 1.0. The following code sample shows an example of the confidence level value returned by Speech-to-Text.
{ "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.96748614 } ] } ] }
In addition to the confidence level of the entire transcription,
Speech-to-Text can also provide the confidence level of
individual words within the transcription. The response then
includes WordInfo
details in the transcription,
indicating the confidence level for individual words as shown in the
following example.
{ "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.98360395, "words": [ { "startOffset": "0s", "endOffset": "0.300s", "word": "how", "confidence": SOME NUMBER }, ... ] } ] } ] }
Enable word-level confidence in a request
The following code snippet demonstrates how to enable word-level confidence in a transcription request to Speech-to-Text using local and remote files.
Use a local file
Protocol
Refer to the speech:recognize
API endpoint for complete details.
To perform synchronous speech recognition, make a POST
request and provide the
appropriate request body. The following shows an example of a POST
request using
curl
. The example uses the Google Cloud CLI to generate an access
token. For instructions on installing the gcloud CLI,
see the quickstart.
The following example show how to send a POST
request using curl
,
where the body of the request enables word-level confidence.
curl -s -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://speech.googleapis.com/v2/projects/{project}/locations/global/recognizers/{recognizers}:recognize \ --data '{ "config": { "features": { "enableWordTimeOffsets": true, "enableWordConfidence": true } }, "uri": "gs://cloud-samples-tests/speech/brooklyn.flac" }' > word-level-confidence.txt
If the request is successful, the server returns a 200 OK
HTTP
status code and the response in JSON format, saved to a file
named word-level-confidence.txt
.
{ "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.98360395, "words": [ { "startTime": "0s", "endTime": "0.300s", "word": "how", "confidence": 0.98762906 }, { "startTime": "0.300s", "endTime": "0.600s", "word": "old", "confidence": 0.96929157 }, { "startTime": "0.600s", "endTime": "0.800s", "word": "is", "confidence": 0.98271006 }, { "startTime": "0.800s", "endTime": "0.900s", "word": "the", "confidence": 0.98271006 }, { "startTime": "0.900s", "endTime": "1.100s", "word": "Brooklyn", "confidence": 0.98762906 }, { "startTime": "1.100s", "endTime": "1.500s", "word": "Bridge", "confidence": 0.98762906 } ] } ], "languageCode": "en-us" } ] }
Python
To learn how to install and use the client library for Speech-to-Text, see Speech-to-Text client libraries. For more information, see the Speech-to-Text Python API reference documentation.
To authenticate to Speech-to-Text, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.