Detección de actividad de voz

El servicio IBM Watson® Speech to Text ofrece dos parámetros de detección de actividad de voz para controlar qué audio se utiliza para el reconocimiento de voz. Los parámetros especifican la sensibilidad del servicio a los sucesos que no son de voz y al ruido de fondo. Los parámetros son independientes: puede utilizarlos de forma individual o conjunta.

La detección de actividad de voz recibe soporte para la mayoría de los modelos de lenguaje. Para obtener más información, consulte Soporte de modelos de lenguaje.

Cómo funciona la detección de actividad del habla

La detección de actividad de voz utiliza el flujo de audio de entrada y determina qué partes del flujo se deben pasar al reconocimiento de voz. El habla de fondo y el ruido pueden provocar errores de reconocimiento del habla, como transcripciones incorrectas, palabras de más o palabras que faltan en el audio de entrada. La característica de detección de actividad de voz puede ayudar a garantizar que solo se procese el audio relevante para el reconocimiento de voz.

Puede utilizar la característica para controlar los siguientes aspectos del reconocimiento de voz:

  • Suprimir voces de fondo. Los datos del centro de soporte al cliente a menudo contienen información cruzada de otros agentes. Puede establecer un umbral de volumen que haga que el servicio ignore la voz de fondo más baja que el nivel especificado.
  • Suprimir ruido de fondo. Algunos audios, como la voz grabada en una fábrica, pueden contener un alto nivel de ruido de fondo. Puede establecer un umbral que haga que el sistema ignore el ruido de fondo más bajo que el nivel especificado.
  • Suprimir sucesos de audio que no sean de voz. La música de fondo y los sucesos de tono, como el audio que se reproduce a un cliente que está esperando en una línea telefónica, pueden provocar un reconocimiento inexacto. El silencio también puede dar lugar a errores de transcripción o de reconocimiento innecesario. Puedes establecer un umbral que haga que el sistema ignore los eventos más silenciosos que el nivel especificado.

De forma predeterminada, la detección de actividad de voz se configura de modo que proporcione un rendimiento óptimo para el caso general de cada modelo. Para casos específicos, es posible que los valores predeterminados no sean los óptimos y den lugar a una transcripción lenta o a inserciones y supresiones de palabras. Se recomienda experimentar con distintos valores para determinar los que mejor se ajustan a su tipo de audio.

Sensibilidad del detector de voz

Utilice el parámetro speech_detector_sensitivity para ajustar la sensibilidad de la detección de actividad del habla. Utilice el parámetro para suprimir las inserciones de palabras procedentes de música, tos y otros sucesos que no sean de voz. El servicio sesga el audio que pasa para el reconocimiento de voz mediante la evaluación de porciones del audio de entrada frente a modelos anteriores de actividad de habla y de no habla.

Especifique un valor flotante comprendido entre 0.0 y 1.0. El valor predeterminado es 0.5, lo que proporciona un equilibrio razonable para el nivel de sensibilidad. El valor 0.0 suprime todo el audio (no se transcribe la voz). El valor 1.0 no suprime ningún audio (la sensibilidad a la detección de voz está inhabilitada). Los valores aumentan en una curva monótona de sensibilidad frente a voz. La especificación de uno o dos decimales de precisión (por ejemplo, 0.55) suele ser más que suficiente.

Este parámetro puede afectar tanto a la calidad como a la latencia del reconocimiento de voz:

  • Los valores más pequeños pueden reducir la latencia, ya que se transmite menos audio para el reconocimiento de voz. Sin embargo, establecer un valor pequeño podría descartar fragmentos de audio que contienen voz real, perdiendo contenido viable de la transcripción.
  • Los valores más altos pueden aumentar la latencia porque se pasa más audio potencialmente para el reconocimiento de voz. Sin embargo, establecer un valor alto podría hacer que se pasaran fragmentos de audio que contienen eventos que no son voz, añadiendo contenido espurio a la transcripción.

Ejemplo de sensibilidad del detector de voz

La siguiente solicitud de ejemplo especifica el valor 0.6 para el parámetro speech_detector_sensitivity con la interfaz HTTP síncrona. El servicio reconoce un número ligeramente superior de sucesos potenciales que no son de habla de los que reconocería de forma predeterminada.

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

Detección de la actividad del habla (SAD)

Speech Activity Detection (SAD), se ha actualizado para incluir un nuevo método mejorado además del método existente en la API Speech To Text recognize. El nuevo método aumenta la precisión y el rendimiento en la detección de los límites del habla dentro del flujo de audio. Puede utilizarse configurando sad_module:2.

Funciones mejoradas

El SAD tiene las siguientes características mejoradas:

  • Mejor rendimiento en la detección del inicio y el final del habla.
  • Supresión de ruido mejorada.
  • Tiempo de respuesta más rápido en la identificación de segmentos con habla.
  • Mayor precisión de reconocimiento en entornos ruidosos.

Inicio del habla Detección de eventos

Gracias a la detección de eventos por voz, ahora puede recibir una notificación anticipada con la API recognize. Detecta el inicio del habla en el flujo de audio entrante y envía una notificación al usuario. Cuando se establece speech_begin_event: true en la solicitud, se envía un nuevo objeto de respuesta que indica el inicio de un segmento de habla. Puede ser útil para transcripciones en tiempo real o aplicaciones basadas en la actividad vocal. Puede ser utilizado por aplicaciones cliente para desencadenar acciones posteriores, por ejemplo, mostrando indicadores de speech started o active y preparando cadenas de procesamiento en tiempo real.

Un evento de inicio de discurso se genera en dos escenarios:

  1. Cuando se detecta primero un discurso en un flujo de audio
  2. Después de cada periodo end_of_phrase_silence_time, si se detecta un nuevo discurso

La sensibilidad de la detección puede ajustarse mediante el parámetro speech_event_sensitivity (por defecto 0.5 ), que es una medida de la intensidad de la señal de habla que activa el evento de inicio de habla.

Los valores más altos indican que es más sensible al habla. Los valores más cercanos a 0 hacen que la detección sea menos sensible al ruido de fondo. Los valores más próximos a 1 aumentan las posibilidades de detectar un evento de inicio de habla, pero podrían provocar falsas alertas en entornos ruidosos.

Utilizando speech_event_sensitivity, puede controlar la sensibilidad del evento de inicio de habla por separado de la transcripción STT, que se controla mediante el parámetro speech_detector_sensitivity. speech_event_sensitivity ignora el ruido para speech_begin_event, que puede dar falsos eventos de inicio de habla.

Supresión de audio de fondo

Utilice el parámetro background_audio_suppression para suprimir el audio de fondo basándose en su volumen para evitar que se transcriba como discurso. Utilice el parámetro para suprimir las conversaciones secundarias o el ruido de fondo. Por ejemplo, utilice este parámetro para gestionar sonidos de fondo estables y silenciosos, como señales de audio débiles. Puesto que este tipo de ruido puede interferir en la transcripción, puede generar contenido en partes en que el audio no contiene voz real.

Especifique un valor flotante comprendido entre 0.0 y 1.0. El valor predeterminado es 0.0, lo que hace que no haya supresión (la supresión de audio de fondo está inhabilitada). El valor 0.5 proporciona un nivel razonable de supresión de audio para uso general. El valor 1.0 suprime todo el audio (no se transcribe la voz). Los valores aumentan en una curva monótona. La especificación de uno o dos decimales de precisión (por ejemplo, 0.55) suele ser más que suficiente.

Este parámetro también puede afectar tanto a la calidad como a la latencia del reconocimiento de voz. No obstante, como la supresión de ruido de fondo está inhabilitada de forma predeterminada, el hecho de establecer el parámetro en un valor mayor que cero solo puede mejorar la latencia. Sin embargo, valores más altos pueden reducir gradualmente el audio que se pasa para el reconocimiento de voz, lo que puede provocar que se pierda contenido válido de la transcripción.

Ejemplo de supresión de audio de fondo

La siguiente solicitud de ejemplo especifica el valor 0.5 para el parámetro background_audio_suppression con la interfaz HTTP síncrona. El servicio suprime un nivel razonable de audio de fondo.

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

Soporte de modelos de lenguaje

Los parámetros speech_detector_sensitivity y background_audio_suppression están soportados para su uso con los siguientes modelos de idioma:

  • En el caso de los grandes modelos del habla y los modelos de nueva generación, los parámetros son compatibles con todos los modelos.
  • En el caso de los modelos de generaciones anteriores, la mayoría de ellos admiten estos parámetros. Los siguientes modelos no admiten actualmente la detección de actividad vocal. Los parámetros se pasan por alto si se utilizan con estos modelos.
    • Modelo de banda ancha para árabe (ar-MS_BroadbandModel)
    • Modelo de banda ancha en portugués de Brasil (pt-BR_BroadbandModel)
    • Modelo de banda ancha chino (zh-CN_BroadbandModel)
    • Modelo de banda estrecha chino (zh-CN_NarrowbandModel)
    • Modelo de banda ancha alemán (de-DE_BroadbandModel)