Cómo registrar audio y transcripciones para el reconocimiento de voz
Puede habilitar el registro tanto para la entrada de audio como para el reconocimiento de voz al usar la conversión de voz en texto o la traducción de voz. Para la traducción de voz, solo se registran el audio y la transcripción del audio original. Las traducciones no se registran. En este artículo se describe cómo habilitar, acceder y eliminar los registros de audio y transcripción.
Los registros de audio y transcripción se pueden usar como entrada para el entrenamiento del modelo de habla personalizada. Es posible que tengas otros casos de uso.
Advertencia
No dependa de los registros de audio y transcripción cuando se requiera el registro exacto del audio de entrada. En los períodos de carga máxima, el servicio da prioridad a los recursos de hardware para las tareas de transcripción. Esto puede dar lugar a que las partes secundarias del audio no se registren. Tales ocasiones son raras, pero sin embargo es posible.
El registro se realiza de forma asincrónica para los puntos de conexión de modelo base y personalizado. El servicio Voz almacena los registros de audio y de transcripción en su almacenamiento interno y no se escriben localmente. Los registros se conservan durante 30 días. Después de este período, los registros se eliminan automáticamente. Sin embargo, puedes eliminar registros específicos o un intervalo de registros disponibles en cualquier momento.
También puede almacenar registros de audio y de transcripción dentro de una cuenta de Azure Storage de su propiedad y bajo su control, en lugar de usar las instalaciones del servicio Voz usando la tecnología Bring-your-own-storage (BYOS). Consulte los detalles sobre cómo usar el recurso de Voz habilitado para BYOS en este artículo.
Habilitar el registro de audio y transcripción
El registro está deshabilitado de forma predeterminada. El registro se puede habilitar por sesión de reconocimiento o por punto de conexión de modelo personalizado.
Habilitar el registro para una sola sesión de reconocimiento
Puedes habilitar el registro para una única sesión de reconocimiento, ya sea utilizando el modelo base predeterminado o el punto de conexión del modelo personalizado.
Advertencia
En el caso de los puntos de conexión de modelo personalizados, la configuración de registro del punto de conexión implementado tiene prioridad sobre la configuración de nivel de sesión (SDK o API de REST). Si el registro está habilitado para el punto de conexión del modelo personalizado, se omite la configuración de nivel de sesión (si está establecida en verdadero o falso). Si el registro no está habilitado para el punto de conexión del modelo personalizado, la configuración de nivel de sesión determina si el registro está activo.
Habilitación del registro para la conversión de voz en texto con el SDK de Voz
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método EnableAudioLogging()
de la instancia de clase SpeechConfig.
speechConfig.EnableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
string isAudioLoggingEnabled = speechConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa este speechConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método EnableAudioLogging
de la instancia de clase SpeechConfig.
speechConfig->EnableAudioLogging();
Para comprobar si el registro está habilitado, obtén el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
string isAudioLoggingEnabled = speechConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa este speechConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging()
de la instancia de clase SpeechConfig.
speechConfig.enableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
String isAudioLoggingEnabled = speechConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa este speechConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging()
de la instancia de clase SpeechConfig.
speechConfig.enableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa este speechConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enable_audio_logging
de la instancia de clase SpeechConfig.
speech_config.enable_audio_logging()
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
import azure.cognitiveservices.speech as speechsdk
# <...>
is_audio_logging_enabled = speech_config.get_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_EnableAudioLogging)
Cada SpeechRecognizer que usa este speech_config
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging
de la instancia de clase SPXSpeechConfiguration.
[speechConfig enableAudioLogging];
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SPXSpeechServiceConnectionEnableAudioLogging
:
NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];
Cada SpeechRecognizer que usa este speechConfig
tiene habilitado el registro de audio y transcripción.
Habilitar el registro para la traducción de voz con el SDK de Voz
Para la traducción de voz, solo se registran el audio y la transcripción del audio original. Las traducciones no se registran.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método EnableAudioLogging()
de la instancia de clase SpeechTranslationConfig.
speechTranslationConfig.EnableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
string isAudioLoggingEnabled = speechTranslationConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa este speechTranslationConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método EnableAudioLogging
de la instancia de clase SpeechTranslationConfig.
speechTranslationConfig->EnableAudioLogging();
Para comprobar si el registro está habilitado, obtén el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
string isAudioLoggingEnabled = speechTranslationConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa este speechTranslationConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging()
de la instancia de clase SpeechTranslationConfig.
speechTranslationConfig.enableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
String isAudioLoggingEnabled = speechTranslationConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa este speechTranslationConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging()
de la instancia de clase SpeechTranslationConfig.
speechTranslationConfig.enableAudioLogging();
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechTranslationConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa este speechTranslationConfig
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enable_audio_logging
de la instancia de clase SpeechTranslationConfig.
speech_translation_config.enable_audio_logging()
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SpeechServiceConnection_EnableAudioLogging
:
import azure.cognitiveservices.speech as speechsdk
# <...>
is_audio_logging_enabled = speech_translation_config.get_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_EnableAudioLogging)
Cada TranslationRecognizer que usa este speech_translation_config
tiene habilitado el registro de audio y transcripción.
Para habilitar el registro de audio y transcripción con el SDK de Voz, ejecuta el método enableAudioLogging
de la instancia de clase SPXSpeechTranslationConfiguration.
[speechTranslationConfig enableAudioLogging];
Para comprobar si el registro está habilitado, obtenga el valor de la propiedad SPXSpeechServiceConnectionEnableAudioLogging
:
NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];
Cada TranslationRecognizer que usa este speechTranslationConfig
tiene habilitado el registro de audio y transcripción.
Habilitación del registro para la API REST de conversión de voz en texto para audios de corta duración
Si usa la API REST de conversión de voz en texto para audios de corta duración y desea habilitar el registro de audio y transcripción, debe usar el parámetro de consulta y el valor storeAudio=true
como parte de la solicitud de REST. Una solicitud de muestra tiene este aspecto:
https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&storeAudio=true
Habilitar el registro de audio y transcripción para un punto de conexión de modelo personalizado
Este método solo se aplica a los puntos de conexión de habla personalizada.
El registro se puede habilitar o deshabilitar en la configuración del punto de conexión del modelo personalizado persistente. Cuando el registro está habilitado (activado) para un punto de conexión de modelo personalizado, no es necesario que habilites el registro en el nivel de sesión de reconocimiento con el SDK o la API de REST. Incluso cuando el registro no está habilitado para un punto de conexión de modelo personalizado, puedes habilitar el registro temporalmente en el nivel de sesión de reconocimiento con el SDK o la API de REST.
Advertencia
En el caso de los puntos de conexión de modelo personalizados, la configuración de registro del punto de conexión implementado tiene prioridad sobre la configuración de nivel de sesión (SDK o API de REST). Si el registro está habilitado para el punto de conexión del modelo personalizado, se omite la configuración de nivel de sesión (si está establecida en verdadero o falso). Si el registro no está habilitado para el punto de conexión del modelo personalizado, la configuración de nivel de sesión determina si el registro está activo.
Puedes habilitar el registro de audio y transcripción para un punto de conexión de modelo personalizado:
- Al crear el punto de conexión mediante Speech Studio, la API de REST o la CLI de Voz. Para obtener detalles sobre cómo habilitar el registro para un punto de conexión de habla personalizada, vea Implementación de un modelo de habla personalizada.
- Al actualizar el punto de conexión (Endpoints_Update) mediante la API REST de conversión de voz en texto. Para obtener un ejemplo de cómo actualizar la configuración de registro de un punto de conexión, consulta Desactivar el registro de un punto de conexión de modelo personalizado. Pero en lugar de establecer la propiedad de
contentLoggingEnabled
enfalse
, configúrala entrue
para habilitar el registro para el punto de conexión.
Desactivar el registro para un punto final de modelo personalizado
Para deshabilitar el registro de audio y transcripción para un punto de conexión de modelo personalizado, debe actualizar la configuración de registro persistente del punto de conexión mediante la API REST de conversión de voz en texto. No hay forma de deshabilitar el registro para un punto de conexión de modelo personalizado existente mediante Speech Studio.
Para desactivar el registro de un punto de conexión personalizado, use la operaciónEndpoints_Update de la API REST de conversión de voz en texto. Construya el cuerpo de la solicitud según las instrucciones siguientes:
- Establecer la propiedad de
contentLoggingEnabled
enproperties
. Establecer esta propiedad entrue
para habilitar el registro del tráfico del punto de conexión. Establecer esta propiedad enfalse
para deshabilitar el registro del tráfico del punto de conexión.
Realice una solicitud HTTP PATCH con el URI, como se muestra en el ejemplo siguiente. Reemplace YourSubscriptionKey
por la clave de recurso de Voz, reemplace YourServiceRegion
por la región del recurso de Voz, reemplace YourEndpointId
por el identificador del punto de conexión, y establezca las propiedades del cuerpo de la solicitud como se ha descrito anteriormente.
curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
"properties": {
"contentLoggingEnabled": false
},
}' "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/YourEndpointId"
Debe recibir un cuerpo de respuesta en el formato siguiente:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"model": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd"
},
"links": {
"logs": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/a07164e8-22d1-4eb7-aa31-bf6bb1097f37/files/logs",
"restInteractive": "https://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"restConversation": "https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"restDictation": "https://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"webSocketInteractive": "wss://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"webSocketConversation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
"webSocketDictation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"properties": {
"loggingEnabled": false
},
"lastActionDateTime": "2024-07-15T16:30:12Z",
"status": "Succeeded",
"createdDateTime": "2024-07-15T16:29:36Z",
"locale": "en-US",
"displayName": "My Endpoint",
"description": "My Endpoint Description"
}
El cuerpo de la respuesta debe reflejar la nueva configuración. El nombre de la propiedad de registro en la respuesta (loggingEnabled
) es diferente del nombre de la propiedad de registro que estableciste en la solicitud (contentLoggingEnabled
).
Obtener registros de audio y transcripción
Puede acceder a los registros de transcripción y audio mediante la API REST de conversión de voz en texto. En el caso de puntos de conexión de modelos personalizados, también puedes usar Speech Studio. Vea los detalles en las secciones siguientes.
Nota
Los datos de registro se conservan durante 30 días. Después de este período, los registros se eliminan automáticamente. Sin embargo, puedes eliminar registros específicos o un intervalo de registros disponibles en cualquier momento.
Obtener los registros de audio y transcripción con Speech Studio
Este método solo es aplicable a los puntos de conexión de modelo personalizados.
Para descargar los registros del punto de conexión:
- Inicie sesión en Speech Studio.
- Seleccione Voz personalizada> El nombre del proyecto >Implementación de modelos.
- Seleccione el vínculo por nombre de punto de conexión.
- En Registro de contenido, seleccione Descargar registro.
Con este enfoque, puedes descargar todos los conjuntos de registros disponibles a la vez. No hay forma de descargar conjuntos de registros seleccionados en Speech Studio.
Obtención de registros de audio y transcripción con la API REST de conversión de voz en texto
Puede descargar todos o un subconjunto de los conjuntos de registros disponibles.
Este método es aplicable a los puntos de conexión de modelo base y personalizados. Para enumerar y descargar registros de audio y transcripción:
- Modelos base: usa la operación Endpoints_ListBaseModelLogs de la API REST de conversión de voz en texto. Esta operación obtiene la lista de registros de audio y transcripción que se almacenan al usar el modelo base predeterminado de un idioma concreto.
- Puntos de conexión de modelo personalizados: use la operación Endpoints_ListLogs de la API REST de conversión de voz en texto. Esta operación obtiene la lista de registros de audio y transcripción que se almacenan para un punto de conexión determinado.
Obtención de los identificadores de registro con la API REST de conversión de voz en texto
En algunos escenarios, es posible que tenga que obtener identificadores de los registros disponibles. Por ejemplo, es posible que quiera eliminar un registro específico, como se describe más adelante en este artículo.
Para obtener los identificadores de los registros disponibles:
- Modelos base: usa la operación Endpoints_ListBaseModelLogs de la API REST de conversión de voz en texto. Esta operación obtiene la lista de registros de audio y transcripción que se almacenan al usar el modelo base predeterminado de un idioma concreto.
- Puntos de conexión de modelo personalizados: use la operación Endpoints_ListLogs de la API REST de conversión de voz en texto. Esta operación obtiene la lista de registros de audio y transcripción que se almacenan para un punto de conexión determinado.
Este es un ejemplo de una salida de muestra de Endpoints_ListLogs. Para simplificar, solo se muestra un conjunto de registros:
{
"values": [
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json",
"name": "163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9.v2.json",
"kind": "Transcription",
"properties": {
"size": 79920
},
"createdDateTime": "2024-07-15T16:29:36Z",
"links": {
"contentUrl": "<Link to download log file>"
}
},
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav",
"name": "163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9.wav",
"kind": "Audio",
"properties": {
"size": 932966
},
"createdDateTime": "2024-07-15T16:29:36Z",
"links": {
"contentUrl": "<Link to download log file>"
}
}
]
}
Las ubicaciones de cada archivo de registro de audio y transcripción se devuelven en el cuerpo de la respuesta. Consulta la propiedad correspondiente kind
para determinar si el archivo incluye el audio ("kind": "Audio"
) o la transcripción ("kind": "Transcription"
).
El identificador de registro de cada archivo de registro es la última parte de la dirección URL en el valor del elemento "self"
. El identificador de registro del ejemplo siguiente es 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json
.
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json"
Eliminar registros de audio y transcripción
Los datos de registro se conservan durante 30 días. Después de este período, los registros se eliminan automáticamente. Sin embargo, puedes eliminar registros específicos o un intervalo de registros disponibles en cualquier momento.
Para cualquier punto de conexión de modelo base o personalizado, puedes eliminar todos los registros disponibles, los registros de un período de tiempo determinado o un registro determinado en función del identificador de registro. El proceso de eliminación se realiza de forma asincrónica y puede tardar minutos, horas, un día o más en función del número de archivos de registro.
Para eliminar los registros de audio y transcripción, debe usar la API REST de conversión de voz en texto. No hay ninguna manera de eliminar registros mediante Speech Studio.
Eliminar todos los registros o registros de un período de tiempo determinado
Para eliminar todos los registros o registros de un período de tiempo determinado:
- Modelos base: use la operación Endpoints_DeleteBaseModelLogs de la API REST de conversión de voz en texto.
- Puntos de conexión de modelo personalizados: use la operación Endpoints_DeleteLogs de la API REST de conversión de voz en texto.
Opcionalmente, establece la endDate
de la eliminación de registros de audio (día específico, UTC). Formato esperado: "aaaa-mm-dd". Por ejemplo, "2023-03-15" da como resultado la eliminación de todos los registros del 15 de marzo de 2023 y anteriores.
Eliminar registro específico
Para eliminar un registro específico por identificador:
- Modelos base: use la operación Endpoints_DeleteBaseModelLog de la API REST de conversión de voz en texto.
- Puntos de conexión de modelo personalizados: use la operación Endpoints_DeleteLog de la API REST de conversión de voz en texto.
Para más información sobre cómo obtener identificadores de registro, consulte una sección anterior Obtención de identificadores de registro con la API REST de conversión de voz en texto.
Dado que los registros de audio y transcripción tienen id. separados (como id. 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json
y 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav
de un ejemplo anterior en este artículo), cuando desees eliminar los registros de audio y transcripción, ejecuta solicitudes de eliminación separadas por id.