分享方式:


如何記錄語音辨識的音訊和謄寫

您可以在使用語音轉換文字語音翻譯時,啟用音訊輸入和辨識的語音記錄。 針對語音翻譯,只有原始音訊的音訊和謄寫會被記錄下來。 翻譯不會被記錄下來。 本文說明如何啟用、存取和刪除音訊和謄寫記錄。

音訊和謄寫記錄可用來作為自訂語音模型訓練的輸入。 您可能有其他使用案例。

警告

在需要輸入音訊的確切記錄時,請勿依賴音訊和謄寫記錄。 在尖峰負載期間,服務會優先分配處理謄寫工作的硬體資源。 這可能導致一小部分的音訊未被記錄。 這類情況很罕見,但仍可能發生。

記錄是針對基本和自訂模型端點以非同步方式完成。 語音服務會在內部儲存體儲存音訊和謄寫記錄,而不會在本機寫入。 該記錄將保留 30 天。 在此期間之後,記錄會自動刪除。 不過,您可以隨時刪除特定記錄或一系列可用記錄。

您也可以使用 自備儲存體 (BYOS) 技術,將音訊和謄寫記錄儲存在您自己擁有和控制的 Azure 儲存體帳戶內,而不是語音服務內部部署。 請參閱本文中如何使用 BYOS 啟用語音資源的詳細資料。

啟用音訊和謄寫記錄

記錄依預設會停用。 記錄可以依辨識工作階段或依自訂模型端點來啟用。

為單一辨識工作階段啟用記錄

您可以使用預設基礎模型或自訂模型端點,以為單一辨識工作階段啟用記錄。

警告

針對自訂模型端點,已部署端點的記錄設定的優先順序會高於工作階段層級設定 (SDK 或 REST API)。 如果自訂模型端點的記錄已啟用,則工作階段層級設定 (無論是設定為 true 或 false) 會被忽略。 如果自訂模型端點的記錄未啟用,則工作階段層級設定會判斷記錄是否為使用中。

使用語音 SDK 為語音轉換文字啟用記錄

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechConfig 類別執行個體的 EnableAudioLogging() 方法。

speechConfig.EnableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechConfig 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechConfig 類別執行個體的 EnableAudioLogging 方法。

speechConfig->EnableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechConfig 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechConfig 類別執行個體的 enableAudioLogging() 方法。

speechConfig.enableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechConfig 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechConfig 類別執行個體的 enableAudioLogging() 方法。

speechConfig.enableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechConfig 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechConfig 類別執行個體的 enable_audio_logging 方法。

speech_config.enable_audio_logging()

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speech_config 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SPXSpeechConfiguration 類別執行個體的 enableAudioLogging 方法。

[speechConfig enableAudioLogging];

若要檢查記錄是否已啟用,請取得 SPXSpeechServiceConnectionEnableAudioLogging 屬性的值:

NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

每個使用此 speechConfig 功能的 SpeechRecognizer 都已啟用音訊和謄寫記錄。

使用語音 SDK 為語音翻譯啟用記錄

針對語音翻譯,只有原始音訊的音訊和謄寫會被記錄下來。 翻譯不會被記錄下來。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechTranslationConfig 類別執行個體的 EnableAudioLogging() 方法。

speechTranslationConfig.EnableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechTranslationConfig 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechTranslationConfig 類別執行個體的 EnableAudioLogging 方法。

speechTranslationConfig->EnableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechTranslationConfig 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechTranslationConfig 類別執行個體的 enableAudioLogging() 方法。

speechTranslationConfig.enableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechTranslationConfig 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechTranslationConfig 類別執行個體的 enableAudioLogging() 方法。

speechTranslationConfig.enableAudioLogging();

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speechTranslationConfig 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SpeechTranslationConfig 類別執行個體的 enable_audio_logging 方法。

speech_translation_config.enable_audio_logging()

若要檢查記錄是否已啟用,請取得 SpeechServiceConnection_EnableAudioLogging 屬性的值:

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

每個使用此 speech_translation_config 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

若要使用語音 SDK 啟用音訊和謄寫記錄,請執行 SPXSpeechTranslationConfiguration 類別執行個體的 enableAudioLogging 方法。

[speechTranslationConfig enableAudioLogging];

若要檢查記錄是否已啟用,請取得 SPXSpeechServiceConnectionEnableAudioLogging 屬性的值:

NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

每個使用此 speechTranslationConfig 功能的 TranslationRecognizer 都已啟用音訊和謄寫記錄。

為簡短音訊語音轉換文字 REST API 啟用記錄

如果您使用簡短音訊語音轉換文字 REST API,而且想要啟用音訊和謄寫記錄,則必須使用查詢參數和值 storeAudio=true 作為 REST 要求的一部分。 樣本要求看起來會像這樣:

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

啟用自訂模型端點的音訊和謄寫記錄

此方法僅適用於自訂語音端點。

記錄可以在持續性自訂模型端點設定中啟用或停用。 當自訂模型端點的記錄啟用 (開啟) 時,則您不需要使用 SDK 或 REST API 在 辨識工作階段層級啟用記錄。 即使自訂模型端點未啟用記錄,您也可以使用 SDK 或 REST API 在辨識工作階段層級暫時啟用記錄。

警告

針對自訂模型端點,已部署端點的記錄設定的優先順序會高於工作階段層級設定 (SDK 或 REST API)。 如果自訂模型端點的記錄已啟用,則工作階段層級設定 (無論是設定為 true 或 false) 會被忽略。 如果自訂模型端點的記錄未啟用,則工作階段層級設定會判斷記錄是否為使用中。

您可以啟用自訂模型端點的音訊和謄寫記錄:

關閉自訂模型端點的記錄

若要停用自訂模型端點的音訊和謄寫記錄,您必須使用 語音轉換文字 REST API 來更新持續性端點記錄設定。 沒有任何方法可以使用 Speech Studio 停用現有自訂模型端點的記錄。

若要關閉自訂端點的記錄,請使用語音轉換文字 REST APIEndpoints_Update 作業。 根據下列指示來建構要求本文:

  • properties 內設定 contentLoggingEnabled 屬性。 將此屬性設為 true,以啟用端點流量的記錄。 將此屬性設為 false,以停用端點流量的記錄。

使用 URI 提出 HTTP PATCH 要求,如下列範例所示。 以您的語音資源金鑰取代 YourSubscriptionKey、以語音資源區域取代 YourServiceRegion、以端點識別碼取代 YourEndpointId,然後設定要求本文屬性,如前所述。

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"

您應該會收到下列格式的回應本文:

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

回應本文應該反映新的設定。 回應 (loggingEnabled) 中的記錄屬性名稱與您在要求 (contentLoggingEnabled) 中設定的記錄屬性名稱不同。

取得音訊和謄寫記錄

您可以使用語音轉換文字 REST API 來存取音訊和謄寫記錄。 針對 自訂模型 端點,您也可以使用 Speech Studio。 請參閱下列各節中的詳細資料。

注意

記錄資料會保留 30 天。 在此期間之後,記錄會自動刪除。 不過,您可以隨時刪除特定記錄或一系列可用記錄。

使用 Speech Studio 取得音訊和謄寫記錄

此方法僅適用於自訂模型端點。

若要下載端點記錄:

  1. 登入 Speech Studio
  2. 選取自訂語音>您的專案名稱>部署模型
  3. 依端點名稱選取連結。
  4. 在 [內容記錄] 下方,選取 [下載記錄]

透過此方法,您可以一次下載所有可用的記錄集。 在 Speech Studio 中無法下載選取的記錄集。

使用語音轉換文字 REST API 取得音訊和謄寫記錄

您可以下載所有或一部分可用的記錄集。

此方法僅適用於基本與自訂模型端點。 如要列出並下載音訊和謄寫記錄:

使用語音轉換文字 REST API 取得記錄識別碼

在某些情況下,您可能需要取得可用記錄的識別碼。 例如,您可能想要刪除特定記錄,如本文稍後所述。

若要取得可用記錄的識別碼:

此處是 Endpoints_ListLogs 的範例輸出。 為了簡單起見,此處只會顯示一個記錄集:

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

每個音訊和謄寫記錄檔的位置都會在回應本文中傳回。 請參閱對應的 kind 屬性,以判斷檔案是否包含音訊 ("kind": "Audio") 或謄寫 ("kind": "Transcription")。

每個記錄檔的記錄識別碼都是 "self" 元素值中 URL 的最後一個部分。 下列範例中的記錄識別碼為 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"

刪除音訊和謄寫記錄

記錄資料會保留 30 天。 在此期間之後,記錄會自動刪除。 不過,您可以隨時刪除特定記錄或一系列可用記錄。

對於任何基本或自訂模型端點,您可以刪除所有可用的記錄、指定時間範圍的記錄,或根據其記錄識別碼的特定記錄檔。 刪除程序是以非同步方式進行,視記錄檔數目而定,可能需要幾分鐘、小時、一天或更長的時間。

若要刪除音訊和謄寫記錄,您必須使用語音轉換文字 REST API。 您無法使用 Speech Studio 刪除記錄。

刪除指定時間範圍的記錄或所有記錄

如要刪除指定時間範圍的記錄或所有記錄:

選擇性地設定音訊記錄檔刪除的 endDate (特定日期 UTC)。 預期格式:「yyyy-mm-dd」。 例如,「2023-03-15」會導致在 2023 年 3 月 15 日 (含) 之前的所有記錄遭刪除。

刪除特定記錄

若要依識別碼刪除特定記錄:

如需如何取得記錄識別碼的詳細資訊,請參閱上一節使用語音轉換文字 REST API 取得記錄識別碼

由於音訊和謄寫記錄有個別的識別碼 (例如本文先前範例的識別碼 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav),因此當您想要刪除音訊和謄寫記錄時,您會執行個別的依識別碼刪除要求。

下一步