分享方式:


文字到語音虛擬人偶的批次合成屬性 (預覽)

注意

文字到語音轉換虛擬人偶目前處於公開預覽狀態。 此預覽版是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

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

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

Avatar 屬性

下表描述虛擬人偶屬性。

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

您可以在這裡找到支援的虛擬人偶字元。

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

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

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

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

webm透明背景需要格式。

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

透明背景需要 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 (white)。
outputs.result 批次合成結果檔的位置,這是包含合成虛擬人偶的視訊檔案。

這個屬性是唯讀的。
性能。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”}

當 設定為 「PlainText」 或設定為 「SSML」 時inputKind,您可以在輸入的 SSML 文字內使用語音名稱。synthesisConfig.voiceinputKind

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

當 inputKind 設定為 “PlainText”時,請提供純文本,如下所示:“inputs”: [{“content”: “彩虹有七種色彩。”}]。 當 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''''>彩虹有七種色彩。”}]。

如果您想要多個視訊輸出檔案,請包含最多 1,000 個文字物件。 以下是應該合成至兩個視訊輸出檔案的範例輸入文字:“inputs”: [{“content”: “合成此檔案”},{“content”: “合成此檔案”}]。

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

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

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

只有當 inputKind 設定為 “PlainText” 時,此屬性才適用。
synthesisConfig.pitch 音訊輸出的音調。

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

只有在 inputKind 設定為 “PlainText” 時,才適用這個選擇性屬性。
synthesisConfig.rate 音訊輸出的速率。

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

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

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

只有在 inputKind 設定為 “PlainText” 時,才適用這個選擇性屬性。
synthesisConfig.voice 說出音訊輸出的語音。

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

當 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 (或透明)

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。將和 <output.mov> 取代<input.webm>為命令列中的本機路徑和檔名。

下一步