共用方式為


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

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

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

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

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

支援的音訊格式和轉碼器

批次轉譯 API (和 快速轉錄 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 檔案儲存體

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

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

因此,儲存體帳戶實際上會完全遭到「鎖定」,無法在任何情節中使用,除了謄寫在套用新設定時已存在的音訊檔案之外。 視音訊資料的安全性而定,您應該將此設定視為一種模式,並根據需求加以自訂。

例如,您可以允許來自所選公用 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"
}

否則,您可以在容器中指定個別檔案。 您必須針對每個檔案產生並使用具有讀取 (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"
    ]
}

下一步