Dávkové syntetizované vlastnosti pro převod textu na řeč
Důležité
Rozhraní API pro syntézu služby Batch je obecně dostupné. Rozhraní API Long Audio bude vyřazeno 1. dubna 2027. Další informace naleznete v tématu Migrace do rozhraní API pro syntézu dávek.
Rozhraní API pro syntézu služby Batch může syntetizovat velký objem textového vstupu (dlouhý a krátký) asynchronně. Vydavatelé a platformy zvukového obsahu můžou v dávce vytvářet dlouhý zvukový obsah. Například: zvukové knihy, články o novinkách a dokumenty. Rozhraní API pro syntézu dávek může vytvořit syntetizovaný zvuk delší než 10 minut.
Některé vlastnosti ve formátu JSON se vyžadují při vytváření nové dávkové úlohy syntézy. Další vlastnosti jsou volitelné. Odpověď na syntézu dávky obsahuje další vlastnosti, které poskytují informace o stavu syntézy a výsledcích. Vlastnost například outputs.result
obsahuje umístění dávkových souborů výsledků syntézy se zvukovým výstupem a protokoly.
Dávkové syntetizované vlastnosti
Vlastnosti dávkové syntézy jsou popsány v následující tabulce.
Vlastnost | Popis |
---|---|
createdDateTime |
Datum a čas vytvoření dávkové úlohy syntézy Tato vlastnost je jen ke čtení. |
customVoices |
Mapa vlastního názvu hlasu a ID nasazení Příklad: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"} Můžete použít hlasové jméno ve svém synthesisConfig.voice (pokud inputKind je nastaveno "PlainText" na ) nebo v textu inputs SSML (pokud je nastavena inputKind na "SSML" ).Tato vlastnost je nutná k použití vlastního hlasu. Pokud se pokusíte použít vlastní hlas, který zde není definovaný, služba vrátí chybu. |
description |
Popis dávkové syntézy. Tato vlastnost je nepovinná. |
id |
ID dávkové syntézy úlohy, které jste předali v cestě. Tato vlastnost je vyžadována v cestě. |
inputs |
Prostý text nebo SSML, které se mají syntetizovat. Pokud je nastavena na inputKind "PlainText" hodnotu , zadejte prostý text, jak je znázorněno zde: "inputs": [{"text": "The rainbow has seven colors."}] . Pokud je nastavena na "SSML" inputKind , zadejte text v jazyce SSML (Speech Synthesis Markup Language), jak je znázorněno zde: "inputs": [{"text": "<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.</voice></speak>"}] .Pokud chcete mít více zvukových výstupních souborů, zahrňte až 1 000 textových objektů. Tady je příklad vstupního textu, který by měl být syntetizován do dvou zvukových výstupních souborů: "inputs": [{"text": "synthesize this to a file"},{"text": "synthesize this to another file"}] . Pokud je však vlastnost nastavena properties.concatenateResult na true , pak každý syntetizovaný výsledek je zapsán do stejného zvukového výstupního souboru.Pro nové odstavce nepotřebujete samostatné textové vstupy. V libovolném textovém vstupu (až 1 000) můžete pomocí řetězce \r\n (newline) zadat nové odstavce. Tady je příklad vstupního textu se dvěma odstavci, které by se měly syntetizovat do stejného zvukového výstupního souboru: "inputs": [{"text": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}] Neexistují žádná omezení odstavců, ale maximální velikost datové části JSON (včetně všech textových vstupů a dalších vlastností) je 2 megabajty. Tato vlastnost se vyžaduje při vytváření nové dávkové syntézy úlohy. Tato vlastnost není zahrnuta v odpovědi při získání úlohy syntézy. |
internalId |
ID interní dávkové syntézy úlohy. Tato vlastnost je jen ke čtení. |
lastActionDateTime |
Poslední datum a čas, kdy se hodnota vlastnosti změnila status .Tato vlastnost je jen ke čtení. |
outputs.result |
Umístění souborů výsledků dávkové syntézy se zvukovým výstupem a protokoly. Tato vlastnost je jen ke čtení. |
properties |
Definovaná sada volitelných nastavení konfigurace syntézy dávek. |
properties.sizeInBytes |
Velikost zvukového výstupu v bajtech. Tato vlastnost je jen ke čtení. |
properties.billingDetails |
Počet zpracovaných a fakturovaných customNeuralCharacters slov oproti neuralCharacters (předem připraveným) hlasům.Tato vlastnost je jen ke čtení. |
properties.concatenateResult |
Určuje, zda má být výsledek zřetězen. Tato volitelná bool hodnota ("true" nebo "false") je ve výchozím nastavení "false". |
properties.decompressOutputFiles |
Určuje, zda se mají rozbalit soubory výsledků syntézy v cílovém kontejneru. Tuto vlastnost lze nastavit pouze při destinationContainerUrl nastavení vlastnosti. Tato volitelná bool hodnota ("true" nebo "false") je ve výchozím nastavení "false". |
properties.destinationContainerUrl |
Výsledky dávkové syntézy je možné uložit do zapisovatelného kontejneru Azure. Pokud nezadáte identifikátor URI kontejneru se sdílenými přístupovými podpisy (SAS), služba Speech ukládá výsledky do kontejneru spravovaného Microsoftem. Sas s uloženými zásadami přístupu se nepodporuje. Při odstranění úlohy syntézy se odstraní také výsledná data. Tato volitelná vlastnost není zahrnuta v odpovědi při získání úlohy syntézy. |
properties.destinationPath |
Cesta předpony, ve které lze uložit výsledky dávkové syntézy. Pokud nezadáte cestu předpony, výchozí cesta předpony je YourSpeechResourceId/YourSynthesisId .Tuto volitelnou vlastnost lze nastavit pouze při destinationContainerUrl nastavení vlastnosti. |
properties.durationInMilliseconds |
Doba trvání zvukového výstupu v milisekundách. Tato vlastnost je jen ke čtení. |
properties.failedAudioCount |
Počet dávkových vstupů syntézy zvukového výstupu selhal. Tato vlastnost je jen ke čtení. |
properties.outputFormat |
Formát výstupu zvuku. Informace o přijatých hodnotách naleznete v části Formáty zvukového výstupu. Výchozí formát výstupu je riff-24khz-16bit-mono-pcm . |
properties.sentenceBoundaryEnabled |
Určuje, zda se mají generovat data hranic věty. Tato volitelná bool hodnota ("true" nebo "false") je ve výchozím nastavení "false".Pokud jsou požadována data hranic věty, je do souboru ZIP výsledků zahrnut odpovídající [nnnn].sentence.json soubor. |
properties.succeededAudioCount |
Počet dávkových syntézních vstupů do zvukového výstupu byl úspěšný. Tato vlastnost je jen ke čtení. |
properties.timeToLiveInHours |
Doba trvání v hodinách po vytvoření úlohy syntézy, kdy se výsledky syntézy automaticky odstraní. Toto volitelné nastavení je 744 ve výchozím nastavení (31 dní). Maximální doba života je 31 dnů. Datum a čas automatického odstranění (pro úlohy syntézy se stavem Úspěch nebo Selhání) se rovná vlastnostem lastActionDateTime + timeToLiveInHours .Jinak můžete volat metodu syntézy odstranění , která dříve odebere úlohu. |
properties.wordBoundaryEnabled |
Určuje, zda se mají generovat data hranic slova. Tato volitelná bool hodnota ("true" nebo "false") je ve výchozím nastavení "false".Pokud jsou požadována data hranic slova, je do souboru ZIP výsledků zahrnut odpovídající [nnnn].word.json soubor. |
status |
Stav dávkového zpracování syntézy. Stav by měl probíhat z "NotStarted" na "Spuštěno" a nakonec na "Úspěch" nebo "Selhání". Tato vlastnost je jen ke čtení. |
synthesisConfig |
Nastavení konfigurace, která se mají použít pro dávkovou syntézu prostého textu. Tato vlastnost je použitelná pouze v případě inputKind , že je nastavena na "PlainText" hodnotu . |
synthesisConfig.backgroundAudio |
Zvuk na pozadí pro každý zvukový výstup. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.backgroundAudio.fadein |
Doba trvání zvuku pozadí fade-in jako milisekundy. Výchozí hodnota je 0 , což je ekvivalentem prolnutí. Akceptované hodnoty: 0 pro 10000 inkluzivní.Informace najdete v tabulce atributů pod přidáním zvuku na pozadí v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.backgroundAudio.fadeout |
Doba trvání zvuku na pozadí vyblednutí v milisekundách. Výchozí hodnota je 0 , což je ekvivalentem žádného zesvětlování. Akceptované hodnoty: 0 pro 10000 inkluzivní.Informace najdete v tabulce atributů pod přidáním zvuku na pozadí v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.backgroundAudio.src |
Umístění identifikátoru URI zvukového souboru na pozadí. Informace najdete v tabulce atributů pod přidáním zvuku na pozadí v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato vlastnost je vyžadována při synthesisConfig.backgroundAudio nastavení. |
synthesisConfig.backgroundAudio.volume |
Hlasitost zvukového souboru na pozadí. Akceptované hodnoty: 0 pro 100 inkluzivní. Výchozí hodnota je 1 .Informace najdete v tabulce atributů pod přidáním zvuku na pozadí v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.pitch |
Výška zvukového výstupu. Informace o přijatých hodnotách naleznete v úpravě tabulky prosody v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.rate |
Rychlost zvukového výstupu. Informace o přijatých hodnotách naleznete v úpravě tabulky prosody v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.role |
U některých hlasů můžete upravit mluvenou roli. Hlas může napodobovat jiný věk a pohlaví, ale jméno hlasu se nezmění. Například mužský hlas může zvýšit tón a změnit intonaci tak, aby napodobuje ženský hlas, ale jméno hlasu se nezmění. Pokud role chybí nebo není pro váš hlas podporovaná, bude tento atribut ignorován. Informace o dostupných stylech na hlas najdete v tématu styly a role hlasu. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.speakerProfileId |
ID profilu mluvčího osobního hlasu. Informace o dostupných názvech osobních hlasových základních modelů najdete v tématu Integrace osobního hlasu. Informace o tom, jak získat ID profilu mluvčího, najdete v tématu podpora jazyka a hlasu. Tato vlastnost je vyžadována, pokud inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.style |
U některých hlasů můžete upravit styl mluvení tak, aby vyjadřoval různé emoce, jako je veselost, empatie a klid. Hlas můžete optimalizovat pro různé scénáře, jako je zákaznický servis, newscast a hlasový asistent. Informace o dostupných stylech na hlas najdete v tématu styly a role hlasu. Tato volitelná vlastnost je použitelná pouze v případě, že synthesisConfig.style je nastavena. |
synthesisConfig.styleDegree |
Intenzita mluvného stylu. Můžete určit silnější nebo měkčí styl, aby byl řeč výraznější nebo subdutnější. Rozsah přijatých hodnot: 0,01 až 2 včetně. Výchozí hodnota je 1, což znamená intenzitu předdefinovaného stylu. Minimální jednotka je 0,01, což má za následek mírnou hodnotu pro cílový styl. Výsledkem hodnoty 2 je zdvojnásobení výchozí intenzity stylu. Pokud ve vašem hlasu chybí stupeň stylu nebo ho váš hlas nepodporuje, bude tento atribut ignorován. Informace o dostupných stylech na hlas najdete v tématu styly a role hlasu. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.voice |
Hlas, který mluví zvukový výstup. Informace o dostupných předem připravených neurálních hlasech najdete v tématu podpora jazyka a hlasu. Pokud chcete použít vlastní hlas, musíte ve vlastnosti zadat platné mapování ID hlasu customVoices a nasazení. Pokud chcete použít osobní hlas, musíte zadat synthesisConfig.speakerProfileId vlastnost. Tato vlastnost je vyžadována, pokud inputKind je nastavena na "PlainText" hodnotu . |
synthesisConfig.volume |
Hlasitost zvukového výstupu. Informace o přijatých hodnotách naleznete v úpravě tabulky prosody v dokumentaci jazyka SSML (Speech Synthesis Markup Language). Neplatné hodnoty jsou ignorovány. Tato volitelná vlastnost je použitelná pouze v případě, že inputKind je nastavena na "PlainText" hodnotu . |
inputKind |
Určuje, zda inputs má být textová vlastnost prostým textem nebo SSML. Možné hodnoty nerozlišující malá a velká písmena jsou "PlainText" a "SSML". Pokud je nastavena na inputKind "PlainText" , musíte také nastavit hlasovou synthesisConfig vlastnost.Tato vlastnost je povinná. |
Latence syntézy dávek a osvědčené postupy
Při použití dávkové syntézy pro generování syntetizované řeči je důležité zvážit latenci a dodržovat osvědčené postupy pro dosažení optimálních výsledků.
Latence v dávkové syntéze
Latence dávkové syntézy závisí na různých faktorech, včetně složitosti vstupního textu, počtu vstupů v dávce a schopností zpracování základního hardwaru.
Latence dávkové syntézy je následující (přibližně):
Latence 50 % syntetizovaných výstupů řeči je během 10 až 20 sekund.
Latence 95 % syntetizovaných výstupů řeči je do 120 sekund.
Osvědčené postupy
Při zvažování dávkové syntézy pro vaši aplikaci se doporučuje posoudit, jestli latence splňuje vaše požadavky. Pokud latence odpovídá požadovanému výkonu, může být dávková syntéza vhodná volba. Pokud ale latence nevyhovuje vašim potřebám, můžete zvážit použití rozhraní API v reálném čase.
Stavové kódy HTTP
Tato část podrobně popisuje kódy odpovědí HTTP a zprávy z rozhraní API pro syntézu dávek.
HTTP 200 OK
HTTP 200 OK označuje, že požadavek byl úspěšný.
Vytvořeno HTTP 201
Http 201 Created označuje, že vytvoření dávkové syntézy požadavku (přes HTTP POST) bylo úspěšné.
Chyba HTTP 204
Chyba HTTP 204 značí, že požadavek byl úspěšný, ale prostředek neexistuje. Příklad:
- Pokusili jste se získat nebo odstranit souhrnnou úlohu, která neexistuje.
- Úspěšně jste odstranili úlohu syntézy.
Chyba HTTP 400
Tady jsou příklady, které můžou vést k chybě 400:
- Nepodporovaná
outputFormat
nebo neplatná. Zadejte platnou hodnotu formátu nebo nechteoutputFormat
prázdnou, aby bylo možné použít výchozí nastavení. - Počet požadovaných textových vstupů překročil limit 10 000.
- Pokusili jste se použít neplatné ID nasazení nebo vlastní hlas, který se úspěšně nenasadil. Ujistěte se, že prostředek služby Speech má přístup k vlastnímu hlasu a že je vlastní hlas úspěšně nasazený. Musíte také zajistit správnost mapování
{"your-custom-voice-name": "your-deployment-ID"}
v dávkové syntéze požadavku. - Pokusili jste se použít prostředek F0 Speech, ale tato oblast podporuje pouze cenovou úroveň prostředků Služby Speech úrovně Standard .
Chyba HTTP 404
Zadaná entita nebyla nalezena. Ujistěte se, že je ID syntézy správné.
Chyba HTTP 429
Existuje příliš mnoho nedávných požadavků. Každá klientská aplikace může odesílat až 100 požadavků za 10 sekund pro každý prostředek služby Speech. Snižte počet požadavků za sekundu.
Chyba HTTP 500
Vnitřní chyba serveru HTTP 500 značí, že požadavek selhal. Text odpovědi obsahuje chybovou zprávu.
Příklad chyby HTTP
Tady je příklad požadavku, který má za následek chybu HTTP 400, protože inputs
vlastnost je nutná k vytvoření úlohy.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechKey" -H "Content-Type: application/json" -d '{
"inputKind": "SSML"
}' "https://YourSpeechRegion.api.cognitive.microsoft.com/texttospeech/batchsyntheses/YourSynthesisId?api-version=2024-04-01"
V tomto případě hlavičky odpovědi zahrnují HTTP/1.1 400 Bad Request
.
Text odpovědi se podobá následujícímu příkladu JSON:
{
"error": {
"code": "BadRequest",
"message": "The inputs is required."
}
}