Prácticas recomendadas para proporcionar datos a la API de Speech-to-Text

En este documento, se incluyen recomendaciones sobre cómo proporcionar datos de voz a la API de Speech-to-Text. Estos lineamientos se diseñaron para aumentar la eficiencia y la exactitud, además de obtener tiempos de respuesta razonables del servicio. El uso de la API de Speech-to-Text ofrece mejores resultados cuando los datos enviados al servicio están dentro de los parámetros descritos en este documento.

Si sigues estos lineamientos y no obtienes los resultados que esperas de la API, consulta Solución de problemas y asistencia.

Para lograr resultados óptimos, haz lo siguiente: En lo posible, evita lo siguiente:
Captura audio con una tasa de muestreo de 16,000 Hz o superior. Las tasas de muestreo más bajas pueden reducir la exactitud. No obstante, evita repetir el muestreo. Por ejemplo, en la telefonía, la tasa nativa es comúnmente de 8,000 Hz, que es la tasa que se debería enviar al servicio.
Usa un códec sin pérdida para grabar y transmitir el audio. Se recomiendan FLAC o LINEAR16. El uso de mp3, mp4, m4a, mu-law, a-law y de otros códecs con pérdida durante la grabación o transmisión puede reducir la exactitud. Si tu audio usa una codificación no admitida por la API, transcodifícalo a FLAC o LINEAR16 sin pérdida. Si tu aplicación debe usar un códec con pérdida para conservar el ancho de banda, recomendamos los códecs AMR_WB, OGG_OPUS o SPEEX_WITH_HEADER_BYTE, en ese orden de preferencia.
El identificador está diseñado para ignorar las voces y los ruidos de fondo sin una reducción del ruido adicional. Sin embargo, para obtener resultados óptimos, coloca el micrófono lo más cerca posible del usuario, especialmente cuando hay ruido de fondo. El ruido de fondo y los ecos excesivos pueden reducir la exactitud, especialmente si también se usa un códec con pérdida.
Si estás capturando audio de más de una persona y cada persona se graba en un canal diferente, envía cada canal por separado para obtener los mejores resultados de reconocimiento. Sin embargo, si todos los interlocutores están mezclados en la grabación de un solo canal, envía la grabación tal como está. Si varias personas hablan al mismo tiempo o en diferentes volúmenes, esto puede interpretarse como ruido de fondo y, por lo tanto, ignorarse.
Usa sugerencias de palabras y frases para agregar nombres y términos al vocabulario, y aumentar la exactitud de palabras y frases específicas. El identificador tiene un vocabulario muy amplio; sin embargo, los términos y nombres propios que estén fuera del vocabulario no serán reconocidos.
Para comandos o consultas cortas, usa StreamingRecognize con single_utterance establecido en verdadero. Esto optimiza el reconocimiento de expresiones cortas y también minimiza la latencia. Usa Recognize o LongRunningRecognize cuando uses comandos o consultas cortas.

Tasa de muestreo

Si es posible, configura la tasa de muestreo de la fuente de audio como 16,000 Hz. De lo contrario, configura el valor de sample_rate_hertz para que coincida con la tasa de muestreo nativa de la fuente de audio (en lugar de repetir el muestreo).

Tamaño de marco

El reconocimiento de transmisión continua reconoce el audio en vivo cuando se captura con un micrófono o con otra fuente de audio. La transmisión de audio se divide en marcos y se envía en mensajes de StreamingRecognizeRequest consecutivos. Se acepta cualquier tamaño de marco. Los marcos más grandes son más eficaces, pero agregan latencia. Se recomienda un tamaño de marco de 100 milisegundos para una buena compensación entre latencia y eficacia.

Preprocesamiento de audio

Lo ideal es proporcionar un audio lo más limpio posible mediante un micrófono de buena calidad y correctamente ubicado. Sin embargo, la aplicación del procesamiento de la señal de reducción de ruidos al audio antes de enviarlo al servicio generalmente reduce la exactitud del reconocimiento. El servicio está diseñado para manejar audio ruidoso.

Para lograr resultados óptimos, haz lo siguiente:

  • Coloca el micrófono lo más cerca posible de la persona que está hablando, especialmente cuando hay ruido de fondo.
  • Evita el recorte de audio.
  • No uses el control automático de ganancia (AGC).
  • Todo el procesamiento de reducción de ruidos debe estar inhabilitado.
  • Escucha algún audio de muestra. Debe sonar claro, sin distorsión o ruidos inesperados.

Configuración de solicitud

Asegúrate de describir con precisión los datos de audio enviados con tu solicitud a la API de Speech-to-Text. Asegúrate de que la RecognitionConfig de tu solicitud describa los sampleRateHertz, encoding y languageCode correctos a fin de que dé como resultado una transcripción y facturación más precisas para tu solicitud.