Como registrar áudio e transcrições para reconhecimento de fala
Você pode habilitar o registro em log para entrada de áudio e fala reconhecida ao usar a conversão de fala para texto ou fala. Para a tradução de fala, apenas 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 de modelo de fala personalizado. Você pode ter outros casos de uso.
Aviso
Não dependa de registros de áudio e transcrição quando o registro exato de áudio de entrada é necessário. Nos períodos de pico de carga, o serviço prioriza recursos de hardware para tarefas de transcrição. Isso pode resultar em partes menores do áudio não sendo registradas. Tais ocasiões são raras, mas ainda assim possíveis.
O registro em log é feito de forma assíncrona para pontos de extremidade de modelo base e personalizados. O serviço de Fala armazena logs de áudio e transcrição em seu armazenamento interno e não são gravados 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 de Armazenamento do Azure que você possui e controla, em vez das instalações do serviço de Fala usando a tecnologia BYOS (Bring-your-own-storage). Veja detalhes sobre como usar o recurso de fala habilitado para BYOS neste artigo.
Habilitar o registro de áudio e transcrição
O registo está desativado por predefiniçã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 do modelo personalizado.
Aviso
Para pontos de extremidade de modelo personalizados, a configuração de log do ponto de extremidade implantado é priorizada sobre a configuração no nível da sessão (SDK ou API REST). Se o registro em log estiver habilitado para o ponto de extremidade do modelo personalizado, a configuração no nível da sessão (se estiver definida como true ou false) será ignorada. Se o registro em log não estiver habilitado para o ponto de extremidade do modelo personalizado, a configuração no nível da sessão determinará se o log está ativo.
Habilite o registro em log de fala em texto com o SDK de fala
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método EnableAudioLogging()
da instância da classe SpeechConfig.
speechConfig.EnableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
string isAudioLoggingEnabled = speechConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa isso speechConfig
tem o registro de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método EnableAudioLogging
da instância da classe SpeechConfig.
speechConfig->EnableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
string isAudioLoggingEnabled = speechConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa isso speechConfig
tem o registro de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método enableAudioLogging()
da instância da classe SpeechConfig.
speechConfig.enableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
String isAudioLoggingEnabled = speechConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa isso speechConfig
tem o registro de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método enableAudioLogging()
da instância da classe SpeechConfig.
speechConfig.enableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada SpeechRecognizer que usa isso speechConfig
tem o registro de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método enable_audio_logging
da instância da classe SpeechConfig.
speech_config.enable_audio_logging()
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
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 de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método enableAudioLogging
da instância da classe SPXSpeechConfiguration .
[speechConfig enableAudioLogging];
Para verificar se o registro em log está habilitado, obtenha o SPXSpeechServiceConnectionEnableAudioLogging
valor da propriedade:
NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];
Cada SpeechRecognizer que usa isso speechConfig
tem o registro de áudio e transcrição habilitado.
Habilite o registro em log para tradução de fala com o SDK de fala
Para a tradução de fala, apenas 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 EnableAudioLogging()
da instância da classe SpeechTranslationConfig .
speechTranslationConfig.EnableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
string isAudioLoggingEnabled = speechTranslationConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa isso speechTranslationConfig
tem o registro 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 EnableAudioLogging
da instância da classe SpeechTranslationConfig .
speechTranslationConfig->EnableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
string isAudioLoggingEnabled = speechTranslationConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa isso speechTranslationConfig
tem o registro 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 enableAudioLogging()
da instância da classe SpeechTranslationConfig .
speechTranslationConfig.enableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
String isAudioLoggingEnabled = speechTranslationConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa isso speechTranslationConfig
tem o registro 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 enableAudioLogging()
da instância da classe SpeechTranslationConfig .
speechTranslationConfig.enableAudioLogging();
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechTranslationConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);
Cada TranslationRecognizer que usa isso speechTranslationConfig
tem o registro 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 enable_audio_logging
da instância da classe SpeechTranslationConfig .
speech_translation_config.enable_audio_logging()
Para verificar se o registro em log está habilitado, obtenha o SpeechServiceConnection_EnableAudioLogging
valor da propriedade:
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 de áudio e transcrição habilitado.
Para habilitar o log de áudio e transcrição com o SDK de fala, execute o método enableAudioLogging
da instância da classe SPXSpeechTranslationConfiguration .
[speechTranslationConfig enableAudioLogging];
Para verificar se o registro em log está habilitado, obtenha o SPXSpeechServiceConnectionEnableAudioLogging
valor da propriedade:
NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];
Cada TranslationRecognizer que usa isso speechTranslationConfig
tem o registro de áudio e transcrição habilitado.
Habilite o registro em log da API REST de fala para texto para áudio curto
Se você usa a API REST de fala para texto para áudio curto e deseja habilitar o registro em log de áudio e transcrição, precisará usar o parâmetro e o valor storeAudio=true
da consulta como parte da sua solicitação REST. Uma solicitação de exemplo tem esta aparência:
https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&storeAudio=true
Habilitar o registro 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 personalizados.
O registro em log pode ser habilitado ou desabilitado nas configurações persistentes do ponto de extremidade do modelo personalizado. Quando o registro em log está habilitado (ativado) para um ponto de extremidade de modelo personalizado, você não precisa habilitar o registro no nível da sessão de reconhecimento com o SDK ou a API REST. Mesmo quando o registro em log não está habilitado para um ponto de extremidade de modelo personalizado, você pode habilitar o registro 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 log do ponto de extremidade implantado é priorizada sobre a configuração no nível da sessão (SDK ou API REST). Se o registro em log estiver habilitado para o ponto de extremidade do modelo personalizado, a configuração no nível da sessão (se estiver definida como true ou false) será ignorada. Se o registro em log não estiver habilitado para o ponto de extremidade do modelo personalizado, a configuração no nível da sessão determinará se o log está ativo.
Você pode habilitar o log de áudio e transcrição para um ponto de extremidade de modelo personalizado:
- Quando você cria o ponto de extremidade usando o Speech Studio, a API REST ou a CLI de Fala. Para obter detalhes sobre como habilitar o registro em log para um ponto de extremidade de fala personalizado, consulte Implantar um modelo de fala personalizado.
- Quando você atualiza o ponto de extremidade (Endpoints_Update) usando a API REST de fala para texto. Para obter um exemplo de como atualizar a configuração de log para um ponto de extremidade, consulte Desativar o log para um ponto de extremidade de modelo personalizado. Mas, em vez de definir a
contentLoggingEnabled
propriedade comofalse
, defina-a paratrue
habilitar o registro em log para o ponto de extremidade.
Desativar o registo de um ponto de extremidade de modelo personalizado
Para desabilitar o log de áudio e transcrição para um ponto de extremidade de modelo personalizado, você deve atualizar a configuração de log de ponto de extremidade persistente usando a API REST de fala para texto. Não há uma maneira de desabilitar o registro em log para 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 fala para texto. Construa o corpo da solicitação de acordo com as seguintes instruções:
- Defina a propriedade dentro de
contentLoggingEnabled
properties
. Defina essa propriedade comotrue
para habilitar o registro em log do tráfego do ponto de extremidade. Defina essa propriedade comofalse
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 de recurso de Fala, substitua YourEndpointId
pelo 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.2/endpoints/YourEndpointId"
Deverá receber um corpo de resposta no seguinte formato:
{
"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"
}
O corpo de resposta deve refletir a nova configuração. O nome da propriedade de log na resposta (loggingEnabled
) é diferente do nome da propriedade de log que você definiu na solicitação (contentLoggingEnabled
).
Obter registros de áudio e transcrição
Você pode acessar logs de áudio e transcrição usando a API REST de fala para texto. Para pontos de extremidade de modelo personalizados, você também pode usar o Speech Studio. Veja os detalhes nas seções a seguir.
Nota
Os dados de registro 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.
Obtenha registos de áudio e transcrição com o Speech Studio
Este método é aplicável apenas para pontos de extremidade de modelo personalizado.
Para baixar os logs de ponto de extremidade:
- Inicie sessão no Speech Studio.
- Selecione Fala> personalizada Seu nome >de projeto Implantar modelos.
- Selecione o link por nome do ponto final.
- Em Registo de conteúdos, selecione Transferir registo.
Com essa abordagem, você pode baixar todos os conjuntos de logs disponíveis de uma só vez. Não é possível baixar conjuntos de logs selecionados no Speech Studio.
Obtenha logs de áudio e transcrição com a API REST de fala para texto
Você pode baixar todos ou um subconjunto de conjuntos de logs disponíveis.
Esse método é aplicável para pontos de extremidade de modelo base e personalizados. Para listar e baixar logs de áudio e transcrição:
- Modelos base: use a operação Endpoints_ListBaseModelLogs da API REST de fala para texto. Esta operação obtém a lista de logs de áudio e transcrição que são armazenados ao usar o modelo base padrão de um determinado idioma.
- Pontos de extremidade de modelo personalizados: use a operação Endpoints_ListLogs da API REST de fala para texto. Esta operação obtém a lista de logs de áudio e transcrição que são armazenados para um determinado ponto de extremidade.
Obter IDs de log com a API REST de fala para texto
Em alguns cenários, talvez seja necessário obter IDs dos logs disponíveis. Por exemplo, talvez você queira excluir um log específico, conforme descrito posteriormente neste artigo.
Para obter IDs dos logs disponíveis:
- Modelos base: use a operação Endpoints_ListBaseModelLogs da API REST de fala para texto. Esta operação obtém a lista de logs de áudio e transcrição que são armazenados ao usar o modelo base padrão de um determinado idioma.
- Pontos de extremidade de modelo personalizados: use a operação Endpoints_ListLogs da API REST de fala para texto. Esta operação obtém a lista de logs de áudio e transcrição que são armazenados para um determinado ponto de extremidade.
Aqui está um exemplo de saída de Endpoints_ListLogs. Para simplificar, apenas um conjunto de logs é mostrado:
{
"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>"
}
}
]
}
Os locais de cada arquivo de log de áudio e transcrição são retornados no corpo da resposta. Consulte a propriedade correspondente kind
para determinar se o arquivo inclui o áudio ("kind": "Audio"
) ou a transcrição ("kind": "Transcription"
).
O ID de log de cada arquivo de log é a última parte da URL no valor do "self"
elemento. O ID de 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.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json"
Excluir registros de áudio e transcrição
Os dados de registro 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 de modelo básico ou personalizado, você pode excluir todos os logs disponíveis, logs de um determinado período de tempo ou um log específico com base em sua ID de 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 fala para texto. Não há uma maneira de excluir logs usando o Speech Studio.
Excluir todos os logs ou logs de um determinado período de tempo
Para excluir todos os logs ou logs de um determinado período de tempo:
- Modelos base: use a operação Endpoints_DeleteBaseModelLogs da API REST de fala para texto.
- Pontos de extremidade de modelo personalizados: use a operação Endpoints_DeleteLogs da API REST de fala para texto.
Opcionalmente, defina a endDate
exclusão dos logs de áudio (dia específico, UTC). Formato esperado: "aaaa-mm-dd". Por exemplo, "2023-03-15" resulta na exclusão de todos os logs em 15 de março de 2023 e antes.
Excluir log específico
Para excluir um log específico por ID:
- Modelos base: use a operação Endpoints_DeleteBaseModelLog da API REST de fala para texto.
- Pontos de extremidade de modelo personalizados: use a operação Endpoints_DeleteLog da API REST de fala para texto.
Para obter detalhes sobre como obter IDs de Log, consulte a seção anterior Obter IDs de log com a API REST de Fala para texto.
Como os logs de áudio e transcrição têm IDs separados (como IDs 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json
e de um exemplo anterior neste artigo), quando você deseja excluir logs de áudio e transcrição, executa solicitações de exclusão separadas por 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav
ID.