文字轉換語音虛擬人偶的批次合成屬性
批次合成屬性可以分組為:虛擬人偶相關屬性、批次作業相關屬性,以及文字轉換語音相關屬性,如下表所述。
當您建立新的批次合成作業時,需要 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_file 、 soft_embedded 、hard_embedded 或none 。這個屬性為選用,且預設值為 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>
。