找出用於批次謄寫的音訊檔案

批次謄寫是用來謄寫儲存體中的大量音訊。 批次轉譯可以從 Azure 內部或外部存取音訊檔案。

當來源音訊檔案儲存在 Azure 外部時,可以透過公用 URI 存取它們(例如「https://crbn.us/hello.wav")」。 檔案應可直接存取;不支援需要驗證或叫用互動式腳本才能存取檔案的 URI。

儲存在 Azure Blob 記憶體中的音訊檔案可以透過下列兩種方法之一存取:

您可以在建立轉譯時指定一或多個音訊檔案。 建議您為每個要求提供多個檔案,或指向具有要轉譯之音訊檔案的 Azure Blob 記憶體容器。 批次轉譯服務可以處理大量提交的轉譯。 服務會同時轉譯檔案,這會減少周轉時間。

支援的音訊格式和編解碼器

批次轉譯 API 支援許多不同的格式和編解碼器,例如:

  • WAV
  • MP3
  • OPUS/OGG
  • FLAC
  • Wma
  • AAC
  • WAV 容器中的 ALAW
  • WAV 容器中的 MULAW
  • Amr
  • WebM
  • M4A
  • SPEEX

注意

批次轉譯服務整合 GStreamer,而且可能會接受更多格式和編解碼器而不傳回錯誤,而我們建議使用 WAV(PCM 編碼)和 FLAC 等無損失格式,以確保最佳的轉譯品質。

Azure Blob 儲存體 上傳

當音訊檔案位於 Azure Blob 儲存體 帳戶時,您可以要求個別音訊檔案或整個 Azure Blob 儲存體 容器的轉譯。 您也可以 將轉譯結果 寫入 Blob 容器。

注意

如需 Blob 和容器限制,請參閱 批次轉譯配額和限制

請遵循下列步驟來建立記憶體帳戶,並將 wav 檔案從本機目錄上傳至新的容器。

  1. 前往 Azure 入口網站並登入 Azure 帳戶。
  2. 在 Azure 入口網站 中建立 儲存體 帳戶資源。 使用與語音資源相同的訂用帳戶和資源群組。
  3. 選取 儲存體 帳戶。
  4. 在左窗格中的 [ 資料記憶體] 群組中,選取 [容器]。
  5. 選取 [+ 容器]
  6. 輸入新容器的名稱,然後選取 [ 建立]。
  7. 選取新的容器。
  8. 選取上傳
  9. 選擇要上傳的檔案,然後選取 [ 上傳]。

受信任的 Azure 服務安全性機制

本節說明如何使用受信任的 Azure 服務安全性機制,在 Azure 儲存體 帳戶中設定及限制批次轉譯來源音訊檔案的存取權。

注意

使用受信任的 Azure 服務安全性機制,您必須使用 Azure Blob 記憶體 來儲存音訊檔案。 不支援使用 Azure 檔案儲存體

如果您在本節中執行所有動作,您的 儲存體 帳戶會設定如下:

因此,實際上,您的 儲存體 帳戶會完全「鎖定」,而且除了在套用新組態時已經存在的音訊檔案外,任何案例都無法使用。 就音訊數據的安全性而言,您應該將此設定視為模型,並根據您的需求加以自定義。

例如,您可以允許來自所選公用IP位址和 Azure 虛擬網路的流量。 您也可以使用私人端點來設定 儲存體 帳戶的存取權(請參閱本教學課程)、使用 儲存體 帳戶密鑰重新啟用存取、允許存取其他 Azure 信任的服務等。

注意

使用 語音 的私人端點不需要保護記憶體帳戶。 您可以使用私人端點進行批次轉譯 API 要求,同時從安全記憶體帳戶個別存取來源音訊檔案,或其他方式。

遵循下列步驟,您會嚴格限制對記憶體帳戶的存取。 然後,您會指派語音資源受控識別的最低必要許可權,以存取 儲存體 帳戶。

為語音資源啟用系統指派的受控識別

請遵循下列步驟,為用於批次轉譯的語音資源啟用系統指派的受控識別。

  1. 前往 Azure 入口網站並登入 Azure 帳戶。

  2. 選取語音資源。

  3. 在左窗格中的 [ 資源管理 ] 群組中,選取 [ 身分識別]。

  4. 在 [ 系統指派] 索引 標籤上,針對狀態選取 [開啟 ]。

    重要

    使用者指派的受控識別不符合批次轉譯記憶體帳戶案例的需求。 務必啟用系統指派的受控識別。

  5. 選取儲存

現在,語音資源的受控識別可以授與記憶體帳戶的存取權。

限制對記憶體帳戶的存取

請遵循下列步驟來限制對記憶體帳戶的存取。

重要

在鎖定記憶體帳戶存取之前,先上傳 Blob 容器中的音訊檔案。

  1. 前往 Azure 入口網站並登入 Azure 帳戶。
  2. 選取 儲存體 帳戶。
  3. 左窗格中的 設定 群組中,選取 [設定]。
  4. 針對 [允許 Blob 公用存取] 選取 [已停用]。
  5. 針對 [允許記憶體帳戶金鑰存取] 選取 [停用]
  6. 選取 [儲存]。

如需詳細資訊,請參閱防止匿名公開讀取容器和 Blob,以及防止 Azure 儲存體 帳戶的共用密鑰授權。

設定 Azure 儲存體 防火牆

擁有 儲存體 帳戶的受限存取權,您必須授與特定受控識別的存取權。 請遵循下列步驟來新增語音資源的存取權。

  1. 前往 Azure 入口網站並登入 Azure 帳戶。

  2. 選取 儲存體 帳戶。

  3. 在左窗格中的 [安全性 + 網络] 群組中,選取 [網络]。

  4. 在 [ 防火牆和虛擬網络] 索引標籤中,選取 [從選取的虛擬網络和IP 位址啟用]。

  5. 取消選取所有複選框。

  6. 請確定 已選取 Microsoft 網路路由

  7. 在 [ 資源實例] 區段下,選取 [Microsoft.CognitiveServices/accounts ] 作為資源類型,然後選取您的語音資源作為實例名稱。

  8. 選取 [儲存]

    注意

    網路變更最多可能需要 5 分鐘才能傳播。

雖然現在允許網路存取,但語音資源尚無法存取 儲存體 帳戶中的數據。 您必須為語音資源受控識別指派特定的存取角色。

指派資源存取角色

請遵循下列步驟,將 儲存體 Blob 數據讀取者角色指派給語音資源的受控識別。

重要

您必須獲指派 儲存體 帳戶或更高範圍的擁有者角色,才能在下一個步驟中執行作業。 這是因為只有 擁有者 角色可以將角色指派給其他人。 請參閱這裡的詳細數據

  1. 前往 Azure 入口網站並登入 Azure 帳戶。

  2. 選取 儲存體 帳戶。

  3. 選取左窗格中的 [存取控制 (IAM) 選單。

  4. 在 [授與此資源存取權] 圖格中選取 [新增角色指派]。

  5. 選取 [角色] 底下的 [儲存體 Blob 數據讀取器],然後選取 [下一步]。

  6. 選取 [成員>指派存取權] 底下的 [受控識別]。

  7. 指派語音資源的受控識別,然後選取 [ 檢閱 + 指派]。

    Screenshot of the managed role assignment review.

  8. 確認設定之後,選取 [ 檢閱 + 指派]

現在語音資源受控識別可以存取 儲存體 帳戶,而且可以存取音訊檔案以進行批次轉譯。

使用系統指派的受控識別時,您會在建立批次轉譯要求時,使用一般 儲存體 帳戶 URL(無 SAS 或其他新增專案)。 例如:

{
    "contentContainerUrl": "https://<storage_account_name>.blob.core.windows.net/<container_name>"
}

否則,您可以在容器中指定個別檔案。 例如:

{
    "contentUrls": [
        "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_1>",
        "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_2>"
    ]
}

批次轉譯的SAS URL

共用存取簽章 (SAS) 是一種 URI,可授與 Azure 儲存體 容器的受限存取權。 當您想要授與特定時間範圍的批次轉譯檔案存取權,而不需共用記憶體帳戶密鑰時,請使用它。

提示

如果具有批次轉譯來源檔案的容器只能由您的語音資源存取,請改用 受信任的 Azure 服務安全性機制

請遵循下列步驟來產生可用於批次轉譯的SAS URL。

  1. 完成 Azure Blob 儲存體 上傳中的步驟,以建立 儲存體 帳戶,並將音訊檔案上傳至新的容器。

  2. 選取新的容器。

  3. 左窗格中的 設定 群組中,選取 [共用存取令牌]。

  4. 選取 [+ 容器]

  5. 針對 [許可權] 選取 [讀取] 和 [列表]。

    Screenshot of the container SAS URI permissions.

  6. 輸入SAS URI 的開始和到期時間,或保留預設值。

  7. 選取 [產生 SAS 權杖和 URL]。

當您建立批次轉譯要求時,請使用 SAS URL。 例如:

{
    "contentContainerUrl": "https://<storage_account_name>.blob.core.windows.net/<container_name>?SAS_TOKEN"
}

否則,您可以在容器中指定個別檔案。 您必須針對每個檔案產生並使用具有讀取 (r) 權限的不同 SAS URL。 例如:

{
    "contentUrls": [
        "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_1>?SAS_TOKEN_1",
        "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_2>?SAS_TOKEN_2"
    ]
}

下一步