Cara menggunakan sintesis batch untuk avatar teks ke ucapan (pratinjau)
Catatan
Avatar teks ke ucapan saat ini dalam pratinjau publik. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
API sintesis batch untuk avatar teks ke ucapan (pratinjau) memungkinkan sintesis teks asinkron menjadi avatar yang berbicara sebagai file video. Penerbit dan platform konten video dapat menggunakan API ini untuk membuat konten video avatar dalam batch. Pendekatan tersebut dapat cocok untuk berbagai kasus penggunaan seperti materi pelatihan, presentasi, atau iklan.
Video avatar sintetis akan dihasilkan secara asinkron setelah sistem menerima input teks. Output video yang dihasilkan dapat diunduh dalam sintesis mode batch. Anda mengirimkan teks untuk sintesis, polling untuk status sintesis, dan mengunduh output video saat status menunjukkan keberhasilan. Format input teks harus teks biasa atau teks Speech Synthesis Markup Language (SSML).
Diagram ini menyediakan ringkasan tingkat tinggi alur kerja.
Untuk melakukan sintesis batch, Anda dapat menggunakan operasi REST API berikut.
Operasi | Metode | Panggilan REST API |
---|---|---|
Membuat sintesis batch | TARUH | avatar/batchsyntheses/{SynthesisId}?api-version=2024-04-15-preview |
Dapatkan sintesis batch | GET | avatar/batchsyntheses/{SynthesisId}?api-version=2024-04-15-preview |
Mencantumkan sintesis batch | GET | avatar/batchsyntheses/?api-version=2024-04-15-preview |
Menghapus sintesis batch | DELETE | avatar/batchsyntheses/{SynthesisId}?api-version=2024-04-15-preview |
Anda dapat merujuk ke sampel kode di GitHub.
Membuat permintaan sintesis batch
Beberapa properti dalam format JSON diperlukan saat Anda membuat pekerjaan sintesis batch baru. Properti lain bersifat opsional. Respons sintesis batch mencakup properti lain untuk memberikan informasi tentang status dan hasil sintesis. Misalnya, outputs.result
properti berisi lokasi tempat Anda dapat mengunduh file video yang berisi video avatar. Dari outputs.summary
, Anda dapat mengakses ringkasan dan detail debug.
Untuk mengirimkan permintaan sintesis batch, buat isi permintaan HTTP POST dengan mengikuti instruksi berikut:
- Atur properti
inputKind
yang diperlukan. inputKind
Jika properti diatur kePlainText
, Anda juga harus mengaturvoice
properti disynthesisConfig
. Dalam contoh di bawah ini,inputKind
diatur keSSML
, sehinggaspeechSynthesis
tidak diatur.- Atur properti
SynthesisId
yang diperlukan. Pilih yang unikSynthesisId
untuk sumber daya ucapan yang sama.SynthesisId
dapat berupa string 3 hingga 64 karakter, termasuk huruf, angka, '-', atau '_', dengan kondisi harus dimulai dan diakhir dengan huruf atau angka. - Atur properti dan
talkingAvatarStyle
yang diperlukantalkingAvatarCharacter
. Anda dapat menemukan karakter dan gaya avatar yang didukung di sini. - Secara opsional, Anda dapat mengatur
videoFormat
properti ,backgroundColor
, dan lainnya. Untuk informasi selengkapnya, lihat properti sintesis batch.
Catatan
Ukuran payload JSON maksimum yang diterima adalah 500 kilobyte.
Setiap sumber daya Ucapan dapat memiliki hingga 200 pekerjaan sintesis batch yang berjalan bersamaan.
Panjang maksimum untuk video output saat ini adalah 20 menit, dengan potensi peningkatan di masa depan.
Untuk membuat permintaan HTTP PUT, gunakan format URI yang diperlihatkan dalam contoh berikut. Ganti YourSpeechKey
dengan kunci sumber daya Ucapan Anda, YourSpeechRegion
dengan wilayah sumber daya Ucapan Anda, dan atur properti isi permintaan seperti yang dijelaskan di atas.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechKey" -H "Content-Type: application/json" -d '{
"inputKind": "SSML",
"inputs": [
{
"content": "<speak version='\''1.0'\'' xml:lang='\''en-US'\''><voice name='\''en-US-AvaMultilingualNeural'\''>The rainbow has seven colors.</voice></speak>"
}
],
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting"
}
}' "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/my-job-01?api-version=2024-04-15-preview"
Anda akan menerima isi respons dalam format berikut:
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "NotStarted",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:08.9487012Z",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
}
}
Properti status
harus maju dari NotStarted
status ke Running
dan akhirnya ke Succeeded
atau Failed
. Anda dapat secara berkala memanggil GET batch synthesis API hingga status yang dikembalikan adalah Succeeded
atau Failed
.
Dapatkan sintesis batch
Untuk mengambil status pekerjaan sintesis batch, buat permintaan HTTP GET menggunakan URI seperti yang ditunjukkan dalam contoh berikut.
Ganti YourSynthesisId
dengan ID sintesis batch Anda, YourSpeechKey
dengan kunci sumber daya Ucapan Anda, dan YourSpeechRegion
dengan wilayah sumber daya Ucapan Anda.
curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-04-15-preview" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
Anda akan menerima isi respons dalam format berikut:
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:12.5698769",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 344460,
"durationInMilliseconds": 2520,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 29,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
}
Dari outputs.result
bidang , Anda dapat mengunduh file video yang berisi video avatar. Bidang ini outputs.summary
memungkinkan Anda mengunduh ringkasan dan detail debug. Untuk informasi selengkapnya tentang hasil sintesis batch, lihat hasil sintesis batch.
Mencantumkan sintesis batch
Untuk mencantumkan semua pekerjaan sintesis batch untuk sumber daya Ucapan Anda, buat permintaan HTTP GET menggunakan URI seperti yang ditunjukkan dalam contoh berikut.
Ganti YourSpeechKey
dengan kunci sumber daya Ucapan Anda dan YourSpeechRegion
dengan wilayah sumber daya Ucapan Anda. Secara opsional, Anda dapat mengatur skip
parameter kueri dan top
(ukuran halaman) di URL. Nilai default untuk skip
adalah 0, dan nilai default untuk maxpagesize
adalah 100.
curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses?skip=0&maxpagesize=2&api-version=2024-04-15-preview" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
Anda menerima isi respons dalam format berikut:
{
"value": [
{
"id": "my-job-02",
"internalId": "14c25fcf-3cb6-4f46-8810-ecad06d956df",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:52:23.9054709Z",
"lastActionDateTime": "2024-03-06T07:52:29.3416944",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 502676,
"durationInMilliseconds": 2950,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 32,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "casual-sitting",
"videoFormat": "Mp4",
"videoCodec": "h264",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
},
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:12.5698769",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 344460,
"durationInMilliseconds": 2520,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 29,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
}
],
"nextLink": "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/?api-version=2024-04-15-preview&skip=2&maxpagesize=2"
}
Dari outputs.result
, Anda dapat mengunduh file video yang berisi video avatar. Dari outputs.summary
, Anda dapat mengakses ringkasan dan detail debug. Untuk informasi selengkapnya, lihat hasil sintesis batch.
Properti value
dalam respons JSON mencantumkan permintaan sintesis Anda. Daftar ini diberi nomor halaman, dengan ukuran halaman maksimum 100. Properti nextLink
disediakan sesuai kebutuhan untuk mendapatkan halaman berikutnya dari daftar paginated.
Mendapatkan file hasil sintesis batch
Setelah Anda mendapatkan pekerjaan sintesis batch dengan status
"Berhasil", Anda dapat mengunduh hasil output video. Gunakan URL dari outputs.result
properti dapatkan respons sintesis batch.
Untuk mendapatkan file hasil sintesis batch, buat permintaan HTTP GET menggunakan URI seperti yang ditunjukkan dalam contoh berikut. Ganti YourOutputsResultUrl
dengan URL dari outputs.result
properti dapatkan respons sintesis batch. Ganti YourSpeechKey
dengan kunci sumber daya Ucapan Anda.
curl -v -X GET "YourOutputsResultUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > output.mp4
Untuk mendapatkan file ringkasan sintesis batch, buat permintaan HTTP GET menggunakan URI seperti yang ditunjukkan dalam contoh berikut. Ganti YourOutputsResultUrl
dengan URL dari outputs.summary
properti dapatkan respons sintesis batch. Ganti YourSpeechKey
dengan kunci sumber daya Ucapan Anda.
curl -v -X GET "YourOutputsSummaryUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > summary.json
File ringkasan berisi hasil sintesis untuk setiap input teks. Berikut adalah contoh file summary.json:
{
"jobID": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"results": [
{
"texts": [
"<speak version='1.0' xml:lang='en-US'><voice name='en-US-AvaMultilingualNeural'>The rainbow has seven colors.</voice></speak>"
],
"status": "Succeeded",
"videoFileName": "244a87c294b94ddeb3dbaccee8ffa7eb/5a25b929-1358-4e81-a036-33000e788c46/0001.mp4",
"TalkingAvatarCharacter": "lisa",
"TalkingAvatarStyle": "graceful-sitting"
}
]
}
Menghapus sintesis batch
Setelah Anda mengambil hasil output audio dan tidak lagi memerlukan riwayat pekerjaan sintesis batch, Anda dapat menghapusnya. Layanan Ucapan mempertahankan setiap riwayat sintesis hingga 31 hari atau durasi yang ditentukan oleh properti permintaan timeToLiveInHours
, mana yang datang lebih cepat. Tanggal dan waktu penghapusan otomatis, untuk pekerjaan sintesis dengan status "Berhasil" atau "Gagal" dihitung sebagai jumlah lastActionDateTime
properti dan timeToLive
.
Untuk menghapus pekerjaan sintesis batch, buat permintaan HTTP DELETE menggunakan format URI berikut. Ganti YourSynthesisId
dengan ID sintesis batch Anda, YourSpeechKey
dengan kunci sumber daya Ucapan Anda, dan YourSpeechRegion
dengan wilayah sumber daya Ucapan Anda.
curl -v -X DELETE "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-04-15-preview" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
Header respons menyertakan HTTP/1.1 204 No Content
jika permintaan penghapusan berhasil.