Especificar niveles de confianza de precisión a nivel de palabra

Puedes especificar que Transcripción de voz de Cloud indique un valor de precisión o un nivel de confianza para palabras concretas de una transcripción.

Confianza a nivel de palabra

Cuando Cloud Speech-to-Text transcribe un clip de audio, también mide el grado de precisión de la respuesta. La respuesta enviada por Cloud STT indica el nivel de confianza de toda la solicitud de transcripción como un número entre 0,0 y 1,0. En el siguiente ejemplo de código se muestra un ejemplo del valor del nivel de confianza que devuelve Cloud STT.

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.96748614
        }
      ]
    }
  ]
}

Además del nivel de confianza de toda la transcripción, Cloud STT también puede proporcionar el nivel de confianza de palabras concretas de la transcripción. La respuesta incluye los detalles de WordInfo en la transcripción, que indican el nivel de confianza de cada palabra, como se muestra en el siguiente ejemplo.

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98360395,
          "words": [
            {
              "startOffset": "0s",
              "endOffset": "0.300s",
              "word": "how",
              "confidence": SOME NUMBER
            },
            ...
          ]
        }
      ]
    }
  ]
}

Habilitar la confianza a nivel de palabra en una solicitud

El siguiente fragmento de código muestra cómo habilitar la confianza a nivel de palabra en una solicitud de transcripción a Transcripción de voz de Cloud mediante archivos locales y remotos.

Usar un archivo local

REST

Consulta todos los detalles en el punto final de la API speech:recognize.

Para realizar el reconocimiento de voz síncrono, haz una solicitud POST y proporciona el cuerpo de la solicitud adecuado. A continuación, se muestra un ejemplo de una solicitud POST que utiliza curl. En el ejemplo se usa Google Cloud CLI para generar un token de acceso. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta la guía de inicio rápido.

En el siguiente ejemplo se muestra cómo enviar una solicitud POST mediante curl, donde el cuerpo de la solicitud habilita la confianza a nivel de palabra.

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

Si la solicitud se realiza correctamente, el servidor devuelve un código de estado HTTP 200 OK y la respuesta en formato JSON, que se guarda en un archivo llamado word-level-confidence.txt.

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98360395,
          "words": [
            {
              "startOffset": "0s",
              "endOffset": "0.300s",
              "word": "how",
              "confidence": 0.98762906
            },
            {
              "startOffset": "0.300s",
              "endOffset": "0.600s",
              "word": "old",
              "confidence": 0.96929157
            },
            {
              "startOffset": "0.600s",
              "endOffset": "0.800s",
              "word": "is",
              "confidence": 0.98271006
            },
            {
              "startOffset": "0.800s",
              "endOffset": "0.900s",
              "word": "the",
              "confidence": 0.98271006
            },
            {
              "startOffset": "0.900s",
              "endOffset": "1.100s",
              "word": "Brooklyn",
              "confidence": 0.98762906
            },
            {
              "startOffset": "1.100s",
              "endOffset": "1.500s",
              "word": "Bridge",
              "confidence": 0.98762906
            }
          ]
        }
      ],
      "languageCode": "en-us"
    }
  ]
}

Python

Para saber cómo instalar y usar la biblioteca de cliente de Cloud STT, consulta Bibliotecas de cliente de Cloud STT. Para obtener más información, consulta la documentación de referencia de la API Cloud STT Python.

Para autenticarte en Cloud STT, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

from google.cloud import speech_v1p1beta1 as speech

client = speech.SpeechClient()

speech_file = "resources/Google_Gnome.wav"

with open(speech_file, "rb") as audio_file:
    content = audio_file.read()

audio = speech.RecognitionAudio(content=content)

config = speech.RecognitionConfig(
    encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
    sample_rate_hertz=16000,
    language_code="en-US",
    enable_word_confidence=True,
)

response = client.recognize(config=config, audio=audio)

for i, result in enumerate(response.results):
    alternative = result.alternatives[0]
    print("-" * 20)
    print(f"First alternative of result {i}")
    print(f"Transcript: {alternative.transcript}")
    print(
        "First Word and Confidence: ({}, {})".format(
            alternative.words[0].word, alternative.words[0].confidence
        )
    )

return response.results