找出用於批次轉譯的音訊檔案

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

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

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

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

支援的音訊格式

批次轉譯 API 支援下列格式:

格式 轉碼器 每個樣本的位元數 採樣速率
WAV PCM 16 位元 8 kHz 或 16 kHz (單聲道或立體聲)
MP3 PCM 16 位元 8 kHz 或 16 kHz (單聲道或立體聲)
OGG OPUS 16 位元 8 kHz 或 16 kHz (單聲道或立體聲)

針對立體聲音訊串流,在轉譯期間會分割左聲道和右聲道。 系統會為每個輸入音訊檔案建立 JSON 結果檔。 若要建立已排序的最終文字記錄,請使用每個語句所產生的時間戳記。

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 檔案儲存體

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

  • 禁止存取所有外部網路流量。
  • 禁止使用儲存體帳戶金鑰存取儲存體帳戶。
  • 禁止使用共用存取簽章存取儲存體帳戶 Blob 儲存體 , (SAS)
  • 使用資源 系統指派的受控識別,允許存取選取的語音資源。

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

例如,您可以允許來自所選公用 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. 指派語音資源的受控識別,然後選取 [ 檢閱 + 指派]。

    受控角色指派檢閱的螢幕擷取畫面。

  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) (共用存取簽章是授與 Azure 儲存體容器限制存取權的 URI。 當您想要授與特定時間範圍的批次轉譯檔案存取權,而不需共用儲存體帳戶金鑰時,請使用它。

提示

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

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

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

  2. 選取新的容器。

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

  4. 選取 [+ 容器]。

  5. 針對[許可權] 選取 [讀取] 和 [清單]。

    容器 SAS URI 許可權的螢幕擷取畫面。

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

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

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

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

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

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

後續步驟