Megosztás a következőn keresztül:


Kötegelt szintézis használata a szöveg és a beszéd avatarja között

A szöveg–beszéd avatar kötegelt szintézisi API lehetővé teszi a szöveg aszinkron szintézisét egy beszélő avatarba videófájlként. A közzétevők és a videótartalom-platformok ezt az API-t használhatják avatarvideó-tartalmak kötegben való létrehozásához. Ez a megközelítés alkalmas lehet különböző használati esetekre, például tananyagokra, bemutatókra vagy hirdetésekre.

A szintetikus avatarvideó aszinkron módon jön létre, miután a rendszer szöveges bemenetet kap. A létrehozott videokimenet kötegelt módban tölthető le. Szöveget küldhet a szintézishez, lekérdezheti a szintézis állapotát, és letöltheti a videó kimenetét, ha az állapot sikerességet jelez. A szövegbeviteli formátumoknak egyszerű szövegnek vagy beszédszintézisi korrektúranyelvnek (SSML) kell lenniük.

Ez a diagram magas szintű áttekintést nyújt a munkafolyamatról.

Képernyőkép a kötegszintézisi munkafolyamat magas szintű áttekintéséről.

A kötegszintézis végrehajtásához a következő REST API-műveleteket használhatja.

Művelet Metódus REST API-hívás
Kötegszintézis létrehozása Helyezze avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01
Kötegszintézis lekérése KAP avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01
Kötegszintézis listázása KAP avatar/batchsyntheses/?api-version=2024-08-01
Kötegszintézis törlése Törlés... avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01

A GitHubon található kódmintákra is hivatkozhat.

Kötegszintézis-kérés létrehozása

Új kötegszintézisi feladat létrehozásakor JSON formátumú tulajdonságokra van szükség. Más tulajdonságok megadása nem kötelező. A kötegszintézis válasza más tulajdonságokat is tartalmaz, amelyek információt nyújtanak a szintézis állapotáról és az eredményekről. A tulajdonság például azt a outputs.result helyet tartalmazza, ahonnan letöltheti az avatarvideóját tartalmazó videofájlt . Innen outputs.summaryelérheti az összegzés és a hibakeresés részleteit.

Kötegszintézis-kérés elküldéséhez az alábbi utasításokat követve hozza létre a HTTP POST kérelem törzsét:

  • Állítsa be a szükséges inputKind tulajdonságot.
  • Ha a inputKind tulajdonság értéke PlainTexta következő, a tulajdonságot is be kell állítania a voice következőben: .synthesisConfig> Az alábbi példában a inputKind be van állítva SSML-re, így a speechSynthesis nincs beállítva.
  • Állítsa be a szükséges SynthesisId tulajdonságot. Válasszon egyedit SynthesisId ugyanahhoz a beszéderőforráshoz. A SynthesisId sztring 3–64 karakterből állhat, beleértve a betűket, számokat, "-" vagy "_" karaktert, azzal a feltétellel, hogy betűvel vagy számmal kell kezdődnie és végződnie.
  • Adja meg a szükséges talkingAvatarCharacter és talkingAvatarStyle a tulajdonságokat. A támogatott avatarkarakterek és stílusok itt találhatók.
  • Igény szerint beállíthatja a videoFormat, backgroundColorés egyéb tulajdonságokat is. További információ: kötegszintézis tulajdonságai.

Feljegyzés

Az elfogadott maximális JSON-hasznos adatméret 500 kilobájt.

Minden Speech-erőforrás legfeljebb 200 kötegelt szintézisfeladatot futtathat egyidejűleg.

A kimeneti videó maximális hossza jelenleg 20 perc, és a jövőben potenciálisan nő.

HTTP PUT-kérés létrehozásához használja az alábbi példában látható URI-formátumot. Cserélje le a YourSpeechKey értéket a Speech erőforráskulcsára, a YourSpeechRegion értéket pedig a Speech erőforrásrégiójára, és állítsa be a kérés törzstulajdonságait a korábban leírtak szerint.

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-08-01"

A válasz törzsének a következő formátumban kell érkeznie:

{
    "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
    }
}

A status tulajdonságnak állapotról állapotra NotStarted kell haladnia Running , és végül a következőre kell haladnia Succeeded : vagy Failed. Rendszeres időközönként meghívhatja a GET kötegelt szintézis API-t , amíg a visszaadott állapot Succeeded vagy Failed.

Kötegszintézis lekérése

A kötegszintézisi feladat állapotának lekéréséhez hozzon létre egy HTTP GET kérést az URI használatával az alábbi példában látható módon.

Cserélje le YourSynthesisId a kötegszintézis azonosítójára, YourSpeechKey a Speech erőforráskulcsára és YourSpeechRegion a Speech-erőforrásterületre.

curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

A válasz törzsének a következő formátumban kell érkeznie:

{
    "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"
    }
}

A mezőből letöltheti az outputs.result avatarvideóját tartalmazó videófájlt. A outputs.summary mező lehetővé teszi az összegzés és a hibakeresési adatok letöltését. A kötegszintézis eredményeiről további információt a kötegszintézis eredményeit ismertető cikkben talál.

Kötegszintézis listázása

A Speech-erőforrás összes kötegelt szintézisi feladatának listázásához hozzon létre egy HTTP GET kérést az URI használatával az alábbi példában látható módon.

Cserélje le YourSpeechKey a Speech erőforráskulcsra és YourSpeechRegion a Speech erőforrásrégiójára. Igény szerint az URL-címben beállíthatja az skip és top (oldalméret) lekérdezési paramétereket. Az alapértelmezett érték skip 0, az alapértelmezett érték maxpagesize pedig 100.

curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses?skip=0&maxpagesize=2&api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

A válasz törzse a következő formátumban érkezik:

{
    "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-08-01&skip=2&maxpagesize=2"
}

Innen outputs.resultletöltheti az avatarvideóját tartalmazó videófájlt. Innen outputs.summaryelérheti az összegzés és a hibakeresés részleteit. További információkért tekintse meg a kötegszintézis eredményeit.

A value JSON-válasz tulajdonsága felsorolja a szintéziskéréseket. A lista lapszámozott, maximális oldalmérete 100. A nextLink tulajdonság szükség szerint meg van adva a lapszámozott lista következő oldalának lekéréséhez.

Kötegelt szintézis eredményfájl lekérése

Miután megkapta a "Sikeres" kötegelt szintézisi feladatot status , letöltheti a videó kimenetének eredményeit. Használja a get batch synthesisoutputs.resulturl-címét.

A kötegszintézis eredményfájljának lekéréséhez hozzon létre egy HTTP GET kérést az URI használatával az alábbi példában látható módon. Cserélje le YourOutputsResultUrl a lekérési kötegszintézis-válasz tulajdonságának outputs.resultURL-címét. Cserélje le YourSpeechKey a Speech erőforráskulcsot.

curl -v -X GET "YourOutputsResultUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > output.mp4

A kötegszintézis összefoglaló fájljának lekéréséhez hozzon létre egy HTTP GET kérést az URI használatával, ahogyan az az alábbi példában látható. Cserélje le YourOutputsResultUrl a lekérési kötegszintézis-válasz tulajdonságának outputs.summaryURL-címét. Cserélje le YourSpeechKey a Speech erőforráskulcsot.

curl -v -X GET "YourOutputsSummaryUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > summary.json

Az összefoglaló fájl tartalmazza az egyes szövegbevitelek összefoglaló eredményeit. Íme egy példa summary.json fájlra:

{
  "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"
    }
  ]
}

Kötegszintézis törlése

Miután lekérte a hangkimenet eredményeit, és már nincs szüksége a kötegszintézisi feladat előzményeire, törölheti azt. A Speech szolgáltatás az egyes szintéziselőzményeket legfeljebb 31 napig vagy a kérelem tulajdonsága timeToLiveInHours által megadott időtartamig őrzi meg, attól függően, hogy melyik hamarabb következik be. Az automatikus törlés dátuma és időpontja a "Sikeres" vagy "Sikertelen" állapotú szintézisfeladatok esetében a rendszer a tulajdonságok és lastActionDateTime a timeToLive tulajdonságok összegeként számítja ki.

Kötegszintézisi feladat törléséhez hozzon létre egy HTTP DELETE-kérést az alábbi URI formátum használatával. Cserélje le YourSynthesisId a kötegszintézis azonosítójára, YourSpeechKey a Speech erőforráskulcsára és YourSpeechRegion a Speech-erőforrásterületre.

curl -v -X DELETE "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

A válaszfejlécek tartalmazzák HTTP/1.1 204 No Content , hogy a törlési kérés sikeres volt-e.

Következő lépések