Compartilhar via


Como registrar áudio e transcrições para reconhecimento de fala

Você pode habilitar o registro para entrada de áudio e fala reconhecida ao usar a conversão de fala em texto ou a tradução de fala. Para tradução de fala, somente o áudio e a transcrição do áudio original são registrados. As traduções não são registradas. Este artigo descreve como habilitar, acessar e excluir os logs de áudio e transcrição.

Os registros de áudio e transcrição podem ser usados como entrada para o treinamento do modelo de fala personalizada. Você pode ter outros casos de uso.

Aviso

Não dependa dos logs de áudio e transcrição quando o registro exato do áudio de entrada for necessário. Nos períodos de pico de carga, o serviço prioriza recursos de hardware para tarefas de transcrição. Isso pode fazer com que partes secundárias do áudio não sejam registradas. Tais ocasiões são raras, mas, no entanto, possíveis.

O registro em log é feito de forma assíncrona para pontos de extremidade de modelo base e personalizado. O serviço de Fala armazena logs de áudio e de transcrição no armazenamento interno dele e não os grava localmente. Os logs são retidos por 30 dias. Após esse período, os logs são excluídos automaticamente. No entanto, você pode excluir logs específicos ou um intervalo de logs disponíveis a qualquer momento.

Você também pode armazenar logs de áudio e transcrição em uma conta do Armazenamento do Microsoft Azure que você possui e controla em vez de locais de serviço de Fala usando tecnologia BYOS (Traga seu próprio armazenamento). Confira detalhes sobre como usar o recurso de Fala habilitado para BYOS neste artigo.

Habilitar o registro em log de áudio e transcrição

O registro em log é desabilitado por padrão. O registro em log pode ser habilitado por sessão de reconhecimento ou por ponto de extremidade de modelo personalizado.

Habilitar o registro em log para uma única sessão de reconhecimento

Você pode habilitar o registro em log para uma única sessão de reconhecimento, seja usando o modelo base padrão ou o ponto de extremidade de modelo personalizado.

Aviso

Para pontos de extremidade de modelo personalizados, a configuração de registro em log do ponto de extremidade implantado é priorizada em relação à configuração no nível da sessão (SDK ou API REST). Se o registro em log estiver habilitado para o ponto de extremidade de modelo personalizado, a configuração no nível da sessão (seja ela definida como true ou false) será ignorada. Se o registro em log não estiver habilitado para o ponto de extremidade de modelo personalizado, a configuração no nível da sessão determinará se o registro em log está ativo.

Habilitar o registro em log para conversão de fala em texto com o SDK de Fala

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da EnableAudioLogging() instância da classe SpeechConfig.

speechConfig.EnableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

string isAudioLoggingEnabled = speechConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada SpeechRecognizer que usa isso speechConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da EnableAudioLogging instância da classe SpeechConfig.

speechConfig->EnableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

string isAudioLoggingEnabled = speechConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);

Cada SpeechRecognizer que usa isso speechConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging() instância da classe SpeechConfig.

speechConfig.enableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

String isAudioLoggingEnabled = speechConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada SpeechRecognizer que usa isso speechConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging() instância da classe SpeechConfig.

speechConfig.enableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada SpeechRecognizer que usa isso speechConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enable_audio_logging instância da classe SpeechConfig.

speech_config.enable_audio_logging()

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

import azure.cognitiveservices.speech as speechsdk
# <...>
is_audio_logging_enabled = speech_config.get_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_EnableAudioLogging)

Cada SpeechRecognizer que usa isso speech_config tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging instância da classe SPXSpeechConfiguration.

[speechConfig enableAudioLogging];

Para verificar se o registro em log está habilitado, obtenha o valor da SPXSpeechServiceConnectionEnableAudioLoggingpropriedade:

NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Cada SpeechRecognizer que usa isso speechConfig tem o registro em log de áudio e transcrição habilitado.

Habilitar o registro em log para tradução de fala com o SDK de Fala

Para tradução de fala, somente o áudio e a transcrição do áudio original são registrados. As traduções não são registradas.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da EnableAudioLogging() instância da classe SpeechTranslationConfig.

speechTranslationConfig.EnableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

string isAudioLoggingEnabled = speechTranslationConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada TranslationRecognizer que usa isso speechTranslationConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da EnableAudioLogging instância da classe SpeechTranslationConfig.

speechTranslationConfig->EnableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

string isAudioLoggingEnabled = speechTranslationConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);

Cada TranslationRecognizer que usa isso speechTranslationConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging() instância da classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

String isAudioLoggingEnabled = speechTranslationConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada TranslationRecognizer que usa isso speechTranslationConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging() instância da classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechTranslationConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);

Cada TranslationRecognizer que usa isso speechTranslationConfig tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro em log de áudio e transcrição com o SDK de Fala, execute o método da enable_audio_logging instância da classe SpeechTranslationConfig.

speech_translation_config.enable_audio_logging()

Para verificar se o registro em log está habilitado, obtenha o valor da SpeechServiceConnection_EnableAudioLoggingpropriedade:

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 isso speech_translation_config tem o registro em log de áudio e transcrição habilitado.

Para habilitar o registro log de áudio e transcrição com o SDK de Fala, execute o método da enableAudioLogging instância da classe SPXSpeechTranslationConfiguration.

[speechTranslationConfig enableAudioLogging];

Para verificar se o registro em log está habilitado, obtenha o valor da SPXSpeechServiceConnectionEnableAudioLoggingpropriedade:

NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Cada TranslationRecognizer que usa isso speechTranslationConfig tem o registro em log de áudio e transcrição habilitado.

Habilitar o registro em log para a API REST de conversão de fala em texto para áudio curto

Se você usar a API REST de conversão de fala em texto para áudio curto e quiser habilitar o registro em log de áudio e transcrição, precisará usar o parâmetro de consulta e o valor storeAudio=true como parte de sua solicitação REST. Uma solicitação de amostra é semelhante a esta:

https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&storeAudio=true

Habilitar o registro em log de áudio e transcrição para um ponto de extremidade de modelo personalizado

Esse método é aplicável apenas para pontos de extremidade de fala personalizada.

O registro em log pode ser habilitado ou desabilitado nas configurações persistentes do ponto de extremidade de modelo personalizado. Quando o registro em log está habilitado (ativado) para um ponto de extremidade de modelo personalizado, não é necessário habilitar o registro em log no nível da sessão de reconhecimento com o SDK ou a API REST. Mesmo quando o registro em log não estiver habilitado para um ponto de extremidade de modelo personalizado, você poderá habilitar o registro em log temporariamente no nível da sessão de reconhecimento com o SDK ou a API REST.

Aviso

Para pontos de extremidade de modelo personalizados, a configuração de registro em log do ponto de extremidade implantado é priorizada em relação à configuração no nível da sessão (SDK ou API REST). Se o registro em log estiver habilitado para o ponto de extremidade de modelo personalizado, a configuração no nível da sessão (seja ela definida como true ou false) será ignorada. Se o registro em log não estiver habilitado para o ponto de extremidade de modelo personalizado, a configuração no nível da sessão determinará se o registro em log está ativo.

Você pode habilitar o registro em log de áudio e transcrição para um ponto de extremidade de modelo personalizado:

Desativar o registro em log de um ponto de extremidade de modelo personalizado

Para desabilitar o log de áudio e transcrição de um ponto de extremidade de modelo personalizado, você deve atualizar a configuração de registro em log do ponto de extremidade persistente usando a API REST de conversão de fala em texto. Não há como desabilitar o registro em log de um ponto de extremidade de modelo personalizado existente usando o Speech Studio.

Para desativar o registro em log de um ponto de extremidade personalizado, use a operação Endpoints_Update da API REST de conversão de fala em texto. Crie o corpo da solicitação de acordo com as seguintes instruções:

  • Defina a propriedade contentLoggingEnabled em properties. Defina essa propriedade como true para habilitar o registro em log do tráfego do ponto de extremidade. Defina essa propriedade como false para desabilitar o registro em log do tráfego do ponto de extremidade.

Faça uma solicitação HTTP PATCH usando o URI, conforme mostrado no exemplo a seguir. Substitua YourSubscriptionKey pela chave de recurso de Fala, substitua YourServiceRegion pela região do recurso de Fala, substitua YourEndpointId pela ID do ponto de extremidade e defina as propriedades do corpo da solicitação, conforme 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"

Você deve receber um corpo de resposta no seguinte formato:

{
  "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"
}

O corpo da resposta deve refletir a nova configuração. O nome da propriedade de registro em log na resposta (loggingEnabled) é diferente do nome da propriedade de registro em log que você definiu na solicitação (contentLoggingEnabled).

Obter logs de áudio e transcrição

Você pode acessar logs de áudio e transcrição usando a API REST de conversão de fala em texto. Para pontos de extremidade de modelo personalizados, você também pode usar o Speech Studio. Consulte os detalhes nas seções a seguir.

Observação

Os dados de registro em log são mantidos por 30 dias. Após esse período, os logs são excluídos automaticamente. No entanto, você pode excluir logs específicos ou um intervalo de logs disponíveis a qualquer momento.

Obter logs de áudio e transcrição com o Speech Studio

Esse método é aplicável somente a pontos de extremidade de modelo personalizado.

Para baixar os logs de ponto de extremidade:

  1. Entre no Speech Studio.
  2. Selecione Discurso personalizado> O nome do seu projeto >Implantar modelos.
  3. Selecione o link pelo nome do ponto de extremidade.
  4. Em Log de conteúdo, selecione Baixar log.

Com essa abordagem, você pode baixar todos os conjuntos de logs disponíveis de uma só vez. Não há como baixar conjuntos de logs selecionados no Speech Studio.

Obtenha logs de áudio e transcrição com a API REST de conversão de fala em texto

Você pode baixar todos ou um subconjunto de conjuntos de logs disponíveis.

Esse método é aplicável a pontos de extremidade base e de modelo personalizado. Para listar e baixar logs de áudio e transcrição:

Obter IDs de log com a API REST de conversão de fala em texto

Em alguns cenários, talvez seja necessário obter as IDs dos logs disponíveis. Por exemplo, talvez você queira excluir um log específico, conforme descrito posteriormente nesse artigo.

Para obter IDs dos logs disponíveis:

Aqui está um exemplo de saída de Endpoints_ListLogs. Para simplificar, somente um conjunto de logs é mostrado:

{
  "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>"
      }
    }
  ]
}

Os locais de cada arquivo de log de áudio e transcrição são retornados no corpo da resposta. Confira a propriedade kind correspondente para determinar se o arquivo inclui o áudio ("kind": "Audio") ou a transcrição ("kind": "Transcription").

A ID do log para cada arquivo de log é a última parte do URL no valor do elemento "self". A ID do log no exemplo a seguir é 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"

Excluir logs de áudio e transcrição

Os dados de registro em log são mantidos por 30 dias. Após esse período, os logs são excluídos automaticamente. No entanto, você pode excluir logs específicos ou um intervalo de logs disponíveis a qualquer momento.

Para qualquer ponto de extremidade base de modelo personalizado, você pode excluir todos os logs disponíveis, logs para um determinado período de tempo ou um log específico com base em sua ID do log. O processo de exclusão é feito de forma assíncrona e pode levar minutos, horas, um dia ou mais, dependendo do número de arquivos de log.

Para excluir logs de áudio e transcrição, você deve usar a API REST de conversão de fala em texto. Não há como excluir logs usando o Speech Studio.

Excluir todos os logs ou logs por um determinado período de tempo

Para excluir todos os logs ou logs por um determinado período de tempo:

Opcionalmente, defina o endDate da exclusão de logs de áudio (dia específico, UTC). Formato esperado: "yyyy-mm-dd". Por exemplo, "2023-03-15" resulta na exclusão de todos os logs em 15 de março de 2023 e antes disso.

Excluir log específico

Para excluir um log específico por ID:

Para obter detalhes sobre como obter IDs de log, confira a seção anterior Obter IDs de log com API REST de conversão de fala em texto.

Como os logs de áudio e transcrição têm IDs separadas (como IDs 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json e 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav de um exemplo anterior nesse artigo), quando você deseja excluir os logs de áudio e transcrição, execute solicitações separadas de exclusão por ID.

Próximas etapas