共用方式為


文字轉換語音虛擬人偶的批次合成屬性

批次合成屬性可以分組為:虛擬人偶相關屬性、批次作業相關屬性,以及文字轉換語音相關屬性,如下表所述。

當您建立新的批次合成作業時,需要 JSON 格式的某些屬性。 其他屬性是選擇性的。 批次合成回應包含其他屬性,以提供合成狀態和結果的相關資訊。 例如,outputs.result 屬性包含的位置,您可以在其中下載包含虛擬人偶視訊的影片檔案。 您可以從 outputs.summary 存取摘要和偵錯詳細資料。

虛擬人偶屬性

下列表格描述虛擬人偶屬性。

屬性 說明
avatarConfig.talkingAvatarCharacter 交談虛擬人偶的人物名稱。

可以在這裡找到支援的虛擬人偶人物。

此屬性是必要項。
avatarConfig.talkingAvatarStyle 交談虛擬人偶的樣式名稱。

可以在這裡找到支援的虛擬人偶樣式。

預先建置的虛擬人偶需要此屬性,而自訂虛擬人偶則為選用屬性。
avatarConfig.customized 布爾值,指出所使用的虛擬人偶是否為自訂虛擬人偶。 若為「是」,則為自訂虛擬人偶,而針對預先建置的虛擬人偶則為「否」。

這個屬性為選用,且預設值為 false
avatarConfig.videoFormat 輸出影片檔案的格式可以是 mp4 或 webm。

透明背景需要 webm 格式。

這個屬性為選用,且預設值為 mp4。
avatarConfig.videoCodec 輸出視訊的編解碼器可以是 h264、hevc、vp9 或 av1。

透明背景需要 Vp9 格式。 使用 vp9 轉碼器的合成速度會變慢,因為 vp9 編碼速度較慢。

這個屬性為選用,且預設值為 hevc。
avatarConfig.bitrateKbps 輸出視訊的位元速率,也就是整數值,單位為 kbps。

這個屬性為選用,且預設值為 2000。
avatarConfig.videoCrop 這個屬性可讓您裁剪影片輸出,這表示輸出原始影片的矩形子區域。 這個屬性有兩個欄位,定義矩形的左上方頂點和右下角頂點。

這個屬性為選用,預設行為是輸出完整的影片。
avatarConfig.videoCrop.topLeft 視訊裁剪矩形的左上方頂點。 這個屬性有兩個欄位 x 和 y,可定義頂點的水平和垂直位置。

設定 properties.videoCrop 時,需要這個屬性。
avatarConfig.videoCrop.bottomRight 視訊裁剪矩形的右上方頂點。 這個屬性有兩個欄位 x 和 y,可定義頂點的水平和垂直位置。

設定 properties.videoCrop 時,需要這個屬性。
avatarConfig.subtitleType 虛擬人偶影片檔案的子標題類型可以是 external_filesoft_embeddedhard_embeddednone

這個屬性為選用,且預設值為 soft_embedded
avatarConfig.backgroundImage 使用 avatarConfig.backgroundImage 屬性新增背景影像。 屬性的值應該是指向所需影像的 URL。 這個屬性為選擇性。
avatarConfig.backgroundColor 虛擬人偶視訊的背景色彩,這是 #RRGGBBAA 格式的字串。 在此字串中:RR、GG、BB 和 AA 表示紅色、綠色、藍色和 Alpha 色板,其十六進位值範圍為 00~FF。 Alpha 色板控制透明度,具有透明值 00、非透明值 FF,以及半透明介於 00 和 FF 之間的值。

這個屬性為選用,且預設值為 #FFFFFFFF (白色)。
outputs.result 批次合成結果檔案的位置,這是包含合成虛擬人偶的影片檔案。

這個屬性是唯讀的。
properties.DurationInMilliseconds 以毫秒為單位的影片輸出持續時間。

這個屬性是唯讀的。

批次合成作業屬性

下列表格說明批次合成作業屬性。

屬性 說明
createdDateTime 建立批次合成作業的日期和時間。

這個屬性是唯讀的。
description 批次合成的描述。

這個屬性為選擇性。
識別碼 批次合成作業 ID。

這個屬性是唯讀的。
lastActionDateTime 狀態屬性值變更的最近日期和時間。

這個屬性是唯讀的。
內容 一組已定義的選擇性批次合成組態設定。
properties.destinationContainerUrl 批次合成結果可以儲存在可寫入的 Azure 容器中。 如果您未指定含共用存取簽章 (SAS) 權杖的容器 URI,則語音服務會將結果儲存在 Microsoft 所管理的容器中。 不支援具有預存存取原則的 SAS。 刪除合成作業時,也會刪除結果資料。

當您取得合成作業時,回應中不會包含此選用的屬性。
properties.timeToLiveInHours 當合成結果會自動刪除時,建立合成作業之後的持續時間 (小時)。 存留時間上限為 744 小時。 針對狀態為「Succeeded」或「Failed」的合成作業,自動刪除的日期和時間會計算為 lastActionDateTime 和 timeToLive 屬性的總和。

否則,您可以呼叫刪除合成方法,以更快移除作業。
status 批次合成處理狀態。

狀態應該會從 "NotStarted" 進展為 "Running",最後會進展為 "Succeeded" 或 "Failed"。

這個屬性是唯讀的。

文字轉換語音屬性

下列表格說明文字轉換語音欄位。

屬性 說明
customVoices 自訂神經語音與名稱和其部署標識符相關聯,如下所示:「customVoices」:{“your-custom-voice-name”: “502ac834-6537-4bc3-9fd6-140114daa66d”}

您可以在 synthesisConfig.voice (當 inputKind 設為「PlainText」或當 inputKind 設定為「SSML」時) 文字內使用語音名稱。

必須使用此屬性來使用自訂語音。 如果您嘗試使用此處未定義的自訂語音,則服務會傳回錯誤。
輸入 要合成的純文字或 SSML。

當 inputKind 設定為「PlainText」時,請提供純文本,如下所示:"inputs": [{"content": "The rainbow has seven colors."}]。 當 inputKind 設定為「SSML」時,請在語音合成標記語言 (SSML) 中提供文字,如下所示:"inputs": [{"content": "<speak version=''1.0''' xml:lang=''en-US'''><voice xml:lang=''en-US''' xml:gender=''Female''' name=''en-US-AvaMultilingualNeural'''>The rainbow has seven colors."}]。

如果您想要多個影片輸出檔案,請包含最多 1,000 個文字物件。 以下是應該合成至兩個影片輸出檔案的範例輸入文字:"inputs": [{"content": "synthesize this to a file"},{"content": "synthesize this to another file"}]。

您不必為新段落分隔文字輸入。 在任何的文字輸入 (最多 1,000 個) 內,您可以使用 "\r\n" (換行符號) 字串來指定新的段落。 以下是應合成至相同音訊輸出檔案之兩個段落的範例輸入文字:"inputs": [{"content": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

當您建立新的批次合成作業時,需要這個屬性。 當您取得合成作業時,這個屬性不會包含在回應中。
properties.billingDetails customNeural 與神經 (預先建置) 聲音所處理和計費的字數。

這個屬性是唯讀的。
synthesisConfig 用於純文字批次合成的組態設定。

此屬性僅在 inputKind 設為「PlainText」時才適用。
synthesisConfig.pitch 音訊輸出的音調。

如需接受值的相關資訊,請參閱語音合成標記語言 (SSML) 文件中的調整韻律表格。 會忽略無效值。

此選擇性屬性僅在 inputKind 設為「PlainText」時才適用。
synthesisConfig.rate 音訊輸出的速率。

如需接受值的相關資訊,請參閱語音合成標記語言 (SSML) 文件中的調整韻律表格。 會忽略無效值。

此選擇性屬性僅在 inputKind 設為「PlainText」時才適用。
synthesisConfig.style 對於某些語音,您可以調整說話風格來表達不同情緒 (例如愉快、同理、平靜)。 您可以針對不同案例進行語音最佳化 (例如客戶服務、新聞廣播、語音助理)。

如需每個語音可用樣式的相關資訊,請參閱語音樣式和角色

此選擇性屬性僅在 inputKind 設為「PlainText」時才適用。
synthesisConfig.voice 說出音訊輸出的語音。

如需可用預先組建神經語音的相關資訊,請參閱語言和語音支援。 若要使用自訂語音,您必須在 customVoices 屬性中指定有效的自訂語音和部署 ID 對應。

此屬性僅在 inputKind 設為「PlainText」時才為必要。
synthesisConfig.volume 音訊輸出的音量。

如需接受值的相關資訊,請參閱語音合成標記語言 (SSML) 文件中的調整韻律表格。 會忽略無效值。

此選擇性屬性僅在 inputKind 設為「PlainText」時才適用。
inputKind 指出輸入文字屬性是否應為純文字或 SSML。 可能不區分大小寫的值是 "PlainText" 和 "SSML"。 當 inputKind 設定為「PlainText」時,您也必須設定 synthesisConfig 語音屬性。

此屬性是必要項。

如何編輯背景

虛擬人偶批次合成 API 目前不支援直接設定背景影片;僅支援靜態背景影像。 不過,如果您想要在製作後新增影片的背景,您可以產生具有透明背景的影片。

若要設定靜態背景影像,請使用 avatarConfig.backgroundImage 屬性,並指定指向所需影像的 URL。 此外,您可以使用 avatarConfig.backgroundColor 屬性來設定虛擬人偶視訊的背景色彩。

若要產生透明背景影片,您必須將下列屬性設定為批次合成要求中的必要值:

屬性 背景透明度的必要值
properties.videoFormat .webm
properties.videoCodec vp9
properties.backgroundColor #00000000 (或 transparent

Clipchamp 是影片編輯工具的其中一個範例,可支援批次合成 API 所產生的透明背景視訊。

某些影片編輯軟體不支援直接 webm 格式,而且只支援 .mov 格式的透明背景視訊輸入,例如 Adobe Premiere Pro。 在這種情況下,您必須先使用 FFMPEG 之類的工具,將視訊格式從 webm 轉換成 .mov

FFMPEG 命令列:

ffmpeg -vcodec libvpx-vp9 -i <input.webm> -vcodec png -pix_fmt rgba metadata:s:v:0 alpha_mode="1" <output.mov>

您可以從 ffmpeg.org下載 FFMPEG。以命令行中的本機路徑和檔名取代 <input.webm><output.mov>

下一步