文字到語音虛擬人偶的批次合成屬性 (預覽)
注意
文字到語音轉換虛擬人偶目前處於公開預覽狀態。 此預覽版是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 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_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 (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.voice inputKind 必須使用此屬性來使用自訂語音。 如果您嘗試使用此處未定義的自訂語音,則服務會傳回錯誤。 |
輸入 | 要合成的純文字或 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>
為命令列中的本機路徑和檔名。
下一步
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: