Come registrare audio e trascrizioni per il riconoscimento vocale

È possibile abilitare la registrazione sia per l'input audio che per il riconoscimento vocale quando si usa il riconoscimento vocale o la traduzione vocale. Per la traduzione vocale, vengono registrati solo l'audio e la trascrizione dell'audio originale. Le traduzioni non vengono registrate. Questo articolo descrive come abilitare, eliminare e accedere ai log di trascrizione e audio.

I log audio e trascrizione possono essere usati come input per il training del modello conversione voce/testo personalizzato. I casi d'uso potrebbero essere altri.

Avviso

Quando è necessario il record esatto dell'audio di input, non basarsi sui log audio e trascrizioni. Nei periodi di picco del carico, il servizio assegna priorità alle risorse hardware per le attività di trascrizione. Ciò può comportare la mancata registrazione di parti secondarie dell'audio. Tali occasioni sono rare, ma comunque possibili.

La registrazione viene eseguita in modo asincrono per gli endpoint del modello sia di base che personalizzati. Il servizio Voce archivia i log audio e trascrizione nella risorsa di archiviazione interna e non viene scritto in locale. I log vengono conservati per 30 giorni. Dopo questo periodo, i log vengono eliminati automaticamente. Tuttavia, è possibile eliminare log specifici o un intervallo di log disponibili in qualsiasi momento.

È anche possibile archiviare i log audio e trascrizione all'interno di un account di Archiviazione di Azure di cui si è proprietari e ha il controllo, anziché nel servizio Voce locale, usando la tecnologia Bring Your Own Storage (BYOS). Vedere i dettagli su come usare la risorsa Voce abilitata per BYOS in questo articolo.

Abilitare la registrazione audio e trascrizione

La registrazione è disabilitata per impostazione predefinita. La registrazione può essere abilitata per sessione di riconoscimento o per endpoint modello personalizzato.

Abilitare la registrazione per una singola sessione di riconoscimento

È possibile abilitare la registrazione per una singola sessione di riconoscimento, indipendentemente dal fatto che si usi il modello di base predefinito o un endpoint del modello personalizzato.

Avviso

Per gli endpoint del modello personalizzati, l'impostazione di registrazione dell'endpoint distribuito è prioritaria rispetto all'impostazione a livello di sessione (SDK o API REST). Se la registrazione è abilitata per l'endpoint del modello personalizzato, l'impostazione a livello di sessione (impostata su true o false) viene ignorata. Se la registrazione non è abilitata per l'endpoint del modello personalizzato, l'impostazione a livello di sessione determina se la registrazione è attiva.

Abilitare la registrazione per il riconoscimento vocale con l’SDK Voce

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo EnableAudioLogging() dell'istanza della classe SpeechConfig.

speechConfig.EnableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni SpeechRecognizer che usa questa speechConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo EnableAudioLogging dell'istanza della classe SpeechConfig.

speechConfig->EnableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni SpeechRecognizer che usa questa speechConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging() dell'istanza della classe SpeechConfig.

speechConfig.enableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni SpeechRecognizer che usa questa speechConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging() dell'istanza della classe SpeechConfig.

speechConfig.enableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni SpeechRecognizer che usa questa speechConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enable_audio_logging dell'istanza della classe SpeechConfig.

speech_config.enable_audio_logging()

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni SpeechRecognizer che usa questa speech_config ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging dell'istanza della classe SPXSpeechConfiguration.

[speechConfig enableAudioLogging];

Per verificare se la registrazione è abilitata, ottenere il valore dellaproprietà SPXSpeechServiceConnectionEnableAudioLogging:

NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Ogni SpeechRecognizer che usa questa speechConfig ha abilitato la registrazione audio e trascrizione.

Abilitare la registrazione per la traduzione vocale con l’SDK Voce

Per la traduzione vocale, vengono registrati solo l'audio e la trascrizione dell'audio originale. Le traduzioni non vengono registrate.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo EnableAudioLogging() dell'istanza della classe SpeechTranslationConfig.

speechTranslationConfig.EnableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni TranslationRecognizer che usa questa speechTranslationConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo EnableAudioLogging dell'istanza della classe SpeechTranslationConfig.

speechTranslationConfig->EnableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni TranslationRecognizer che usa questa speechTranslationConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging() dell'istanza della classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni TranslationRecognizer che usa questa speechTranslationConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging() dell'istanza della classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni TranslationRecognizer che usa questa speechTranslationConfig ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enable_audio_logging dell'istanza della classe SpeechTranslationConfig.

speech_translation_config.enable_audio_logging()

Per verificare se la registrazione è abilitata, ottenere il valore della proprietà SpeechServiceConnection_EnableAudioLogging:

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

Ogni TranslationRecognizer che usa questa speech_translation_config ha abilitato la registrazione audio e trascrizione.

Per abilitare la registrazione audio e trascrizione con l’SDK Voce, eseguire il metodo enableAudioLogging dell'istanza della classe SPXSpeechTranslationConfiguration.

[speechTranslationConfig enableAudioLogging];

Per verificare se la registrazione è abilitata, ottenere il valore dellaproprietà SPXSpeechServiceConnectionEnableAudioLogging:

NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Ogni TranslationRecognizer che usa questa speechTranslationConfig ha abilitato la registrazione audio e trascrizione.

Abilitare la registrazione per l'API REST Riconoscimento vocale per audio brevi

Se si usa l'API REST Riconoscimento vocale per audio brevi e si vuole abilitare la registrazione audio e trascrizione, è necessario usare il parametro di query e il valore storeAudio=true come parte della richiesta REST. Una richiesta di esempio è simile alla seguente:

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

Abilitare la registrazione audio e trascrizione per un endpoint del modello personalizzato

Questo metodo è applicabile solo agli endpoint di Riconoscimento vocale personalizzato.

La registrazione può essere abilitata o disabilitata nelle impostazioni dell'endpoint del modello personalizzato permanente. Quando la registrazione è abilitata (attivata) per un endpoint modello personalizzato, non è necessario abilitare la registrazione a livello di sessione di riconoscimento con l'SDK o l'API REST. Anche quando la registrazione non è abilitata per un endpoint modello personalizzato, è possibile abilitare la registrazione temporaneamente a livello di sessione di riconoscimento con l'SDK o l'API REST.

Avviso

Per gli endpoint del modello personalizzati, l'impostazione di registrazione dell'endpoint distribuito è prioritaria rispetto all'impostazione a livello di sessione (SDK o API REST). Se la registrazione è abilitata per l'endpoint del modello personalizzato, l'impostazione a livello di sessione (impostata su true o false) viene ignorata. Se la registrazione non è abilitata per l'endpoint del modello personalizzato, l'impostazione a livello di sessione determina se la registrazione è attiva.

È possibile abilitare la registrazione audio e trascrizione per un endpoint del modello personalizzato:

Disattivare la registrazione per un endpoint del modello personalizzato

Per disabilitare la registrazione audio e trascrizione per un endpoint modello personalizzato, è necessario aggiornare l'impostazione di registrazione dell'endpoint permanente usando l'API REST Riconoscimento vocale. Non è possibile disabilitare la registrazione per un endpoint del modello personalizzato esistente usando Speech Studio.

Per disattivare la registrazione per un endpoint personalizzato, usare l'operazione Endpoints_Update dell'API REST Riconoscimento vocale. Creare il corpo della richiesta in base alle istruzioni seguenti:

  • Impostare la proprietà contentLoggingEnabled all'interno di properties. Impostare questa proprietà su true per abilitare la registrazione del traffico dell'endpoint. Impostare questa proprietà su false per disabilitare la registrazione del traffico dell'endpoint.

Effettuare una richiesta HTTP PATCH usando l'URI, come illustrato nell'esempio seguente. Sostituire YourSubscriptionKey con la chiave della risorsa Voce, sostituire YourServiceRegion con l'area della risorsa Voce, sostituire YourEndpointId con l'ID endpoint e impostare le proprietà del corpo della richiesta come descritto in precedenza.

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"

Si dovrebbe ricevere un corpo della risposta nel formato seguente:

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

Il corpo della risposta deve riflettere la nuova impostazione. Il nome della proprietà di registrazione nella risposta (loggingEnabled) è diverso dal nome della proprietà di registrazione impostata nella richiesta (contentLoggingEnabled).

Ottenere log audio e trascrizione

È possibile accedere ai log audio e di trascrizione usando l'API REST Riconoscimento vocale. Per gli endpoint del modello personalizzati, è possibile usare anche Speech Studio. Vedere i dettagli nelle sezioni seguenti.

Nota

I dati di registrazione vengono conservati per 30 giorni. Dopo questo periodo i log vengono eliminati automaticamente. Tuttavia, è possibile eliminare log specifici o un intervallo di log disponibili in qualsiasi momento.

Ottenere log audio e trascrizione con Speech Studio

Questo metodo è applicabile solo agli endpoint del modello personalizzati.

Per scaricare i log degli endpoint:

  1. Accedere a Speech Studio.
  2. Selezionare Riconoscimento vocale personalizzato> Nome progetto >Distribuire modelli.
  3. Selezionare il collegamento in base al nome dell'endpoint.
  4. In Registrazione contenuto selezionare Scarica log.

Con questo approccio, è possibile scaricare contemporaneamente tutti i set di log disponibili. Non è possibile scaricare i set di log selezionati in Speech Studio.

Ottenere log audio e trascrizione con l'API REST Riconoscimento vocale

È possibile scaricare tutti i set di log disponibili o un subset.

Questo metodo è applicabile per gli endpoint del modello di base e personalizzati. Per elencare e scaricare log audio e trascrizione:

Ottenere gli ID log con l'API REST Riconoscimento vocale

In alcuni scenari potrebbe essere necessario ottenere gli ID dei log disponibili. Ad esempio, è possibile eliminare un log specifico, come descritto più avanti in questo articolo.

Per ottenere gli ID dei log disponibili:

Ecco un output di esempio di Endpoints_ListLogs. Per semplicità, viene mostrato un solo set di log:

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

I percorsi di ogni file di log audio e trascrizione vengono restituiti nel corpo della risposta. Vedere la proprietà kind corrispondente per determinare se il file include l'audio ("kind": "Audio") o la trascrizione ("kind": "Transcription").

L'ID del log di ogni file di log è l'ultima parte dell'URL nel valore dell'elemento "self". L'ID del log nell'esempio seguente è 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"

Eliminare i log audio e trascrizione

I dati di registrazione vengono conservati per 30 giorni. Dopo questo periodo, i log vengono eliminati automaticamente. Tuttavia, è possibile eliminare log specifici o un intervallo di log disponibili in qualsiasi momento.

Per qualsiasi endpoint del modello di base o personalizzato è possibile eliminare tutti i log disponibili, i log per un determinato intervallo di tempo o un determinato log in base all'ID log. Il processo di eliminazione viene eseguito in modo asincrono e può richiedere minuti, ore, un giorno o più a seconda del numero di file di log.

Per eliminare i log audio e di trascrizione, è necessario usare l'API REST Riconoscimento vocale. Non esiste un modo per eliminare i log usando Speech Studio.

Eliminare tutti i log o i log per un determinato intervallo di tempo

Per eliminare tutti i log o i log per un determinato intervallo di tempo:

Facoltativamente, impostare il endDate dell'eliminazione dei log audio (giorno specifico, UTC). Formato previsto: "aaaa-mm-gg". Ad esempio, "2023-03-15" comporta l'eliminazione di tutti i log del 15 marzo 2023 e di quelli precedenti.

Eliminare log specifici

Per eliminare un log specifico in base all'ID:

Per informazioni dettagliate su come ottenere gli ID log, vedere la sezione precedente Ottenere gli ID log con l'API REST Riconoscimento vocale.

Poiché i log di trascrizione e audio hanno ID separati (ad esempio ID 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json e 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav di un esempio precedente in questo articolo), quando si vogliono eliminare sia i log audio che i log di trascrizione si eseguono richieste separate di eliminazione per ID.

Passaggi successivi