Sdílet prostřednictvím


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 nechte outputFormat 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."
  }
}

Další kroky