Compartir por


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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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 SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SPXSpeechServiceConnectionEnableAudioLoggingpropiedad:

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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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 SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SpeechServiceConnection_EnableAudioLoggingpropiedad:

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, obtén el valor de la SPXSpeechServiceConnectionEnableAudioLoggingpropiedad:

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:

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 en properties. Establecer esta propiedad en true para habilitar el registro del tráfico del punto de conexión. Establecer esta propiedad en false 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.1/endpoints/YourEndpointId"

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/endpoints/4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/71b46720-995d-4038-a331-0317e9e7a02f"
  },
  "links": {
    "logs": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/endpoints/4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2/files/logs",
    "restInteractive": "https://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
    "restConversation": "https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
    "restDictation": "https://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
    "webSocketInteractive": "wss://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
    "webSocketConversation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2",
    "webSocketDictation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=4ef91f9b-7ac9-4c3b-a238-581ef0f8b7e2"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/122fd2f7-1d3a-4404-885d-2b24a2a187e8"
  },
  "properties": {
    "loggingEnabled": false
  },
  "lastActionDateTime": "2023-03-28T23:03:15Z",
  "status": "Succeeded",
  "createdDateTime": "2023-03-28T23:02:40Z",
  "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:

  1. Inicie sesión en Speech Studio.
  2. Seleccione Voz personalizada> El nombre del proyecto >Implementación de modelos.
  3. Seleccione el vínculo por nombre de punto de conexión.
  4. 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:

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:

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.1/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": "2023-03-13T16:37:15Z",
      "links": {
        "contentUrl": "<Link to download log file>"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/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": "2023-03-13T16:37:15Z",
      "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.1/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:

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:

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.

Pasos siguientes