Uso de Azure Speech to Text API
El servicio Azure Speech admite el reconocimiento de voz a través de las siguientes características:
- Transcripción en tiempo real: transcripción instantánea con resultados intermedios para entradas de audio en vivo.
- Transcripción rápida: salida sincrónica más rápida para situaciones con latencia predecible.
- Transcripción por lotes: procesamiento eficaz para grandes volúmenes de audio pregrabado.
- Habla personalizada: modelos con precisión mejorada para dominios y condiciones específicos.
Uso del SDK de Voz de Azure
Aunque los detalles específicos varían, según el SDK que se esté usando (Python, C#, etc.), hay un patrón coherente para usar la API Speech to Text:
- Use un objeto SpeechConfig para encapsular la información necesaria para conectarse al recurso de Voz de Azure. En concreto, su ubicación y clave.
- También puede usar un objeto AudioConfig para definir el origen de entrada del audio que se va a transcribir. De manera predeterminada, es el micrófono predeterminado del sistema, pero también puede especificar un archivo de audio.
- Use SpeechConfig y AudioConfig para crear un objeto SpeechRecognizer. Este objeto es un cliente proxy para la API Speech to Text.
- Use los métodos del objeto SpeechRecognizer para llamar a las funciones de API subyacentes. Por ejemplo, el método RecognizeOnceAsync() usa el servicio Voz de Azure para transcribir de forma asincrónica una sola expresión hablada.
- Procese la respuesta del servicio Voz de Azure. En el caso del método RecognizeOnceAsync(), el resultado es un objeto SpeechRecognitionResult que incluye las siguientes propiedades:
- Duración
- OffsetInTicks
- Propiedades
- Motivo
- ResultId
- Mensaje de texto
Si la operación se realizó correctamente, la propiedad Reason tiene el valor enumerado RecognizeSpeech y la propiedad Text contiene la transcripción. Otros valores posibles para Result incluyen NoMatch (que indica que el audio se ha analizado correctamente, pero no se reconoció ninguna voz) o Cancelado, lo que indica que se produjo un error (en cuyo caso, puede comprobar la colección Properties para la propiedad CancellationReason para determinar lo que salió mal).