REST-API für Text-to-Speech

Mit dem Spracherkennungsdienst können Sie Text in synthetisierte Sprache konvertieren und eine Liste der unterstützten Stimmen für einen Bereich mithilfe einer REST-API abrufen. In diesem Artikel erfahren Sie mehr über Autorisierungsoptionen, Abfrageoptionen, das Strukturieren einer Anforderung und das Interpretieren einer Antwort.

Tipp

Anwendungsfälle für die REST-API für Text zu Sprache sind eingeschränkt. Verwenden Sie sie nur in Fällen, in denen Sie das Speech SDK nicht verwenden können. Mit dem Speech SDK können Sie z. B. Ereignisse abonnieren , um weitere Einblicke in den Text zur Sprachverarbeitung und -ergebnisse zu erhalten.

Die Text-to-Speech-REST-API unterstützt neurale Text-to-Speech-Stimmen in vielen Regionen. Jeder verfügbare Endpunkt ist einer Region zugeordnet. Ein API-Schlüssel für den Endpunkt oder die Region, den Sie verwenden möchten, ist erforderlich. Hier sind Links zu weiteren Informationen:

Wichtig

Die Kosten variieren für Standardstimmungen und benutzerdefinierte Stimmen. Weitere Informationen finden Sie unter Preise für Text-zu-Sprache.

Voraussetzungen

Um die Text-zu-Sprache-REST-API zu verwenden, benötigen Sie Folgendes:

Authentifizierung

Jede Anforderung erfordert einen Autorisierungsheader. In dieser Tabelle wird veranschaulicht, welche Kopfzeilen für jedes Feature unterstützt werden:

Unterstützter Autorisierungsheader Sprach-zu-Text-Erkennung Text-zu-Sprache
Ocp-Apim-Subscription-Key Ja Ja
Authorization: Bearer Ja Ja

Wenn Sie den Ocp-Apim-Subscription-Key Header verwenden, muss nur Ihr Ressourcenschlüssel bereitgestellt werden. Zum Beispiel:

'Ocp-Apim-Subscription-Key': 'YourSpeechResourceKey'

Wenn Sie den STS-Bearer-Token-Fluss mit Authorization: Bearerverwenden, stellen Sie zuerst eine Anforderung an den issueToken Endpunkt. In dieser Anforderung tauschen Sie Ihren Ressourcenschlüssel für ein Zugriffstoken aus, das 10 Minuten gültig ist.

Eine weitere Möglichkeit besteht darin, Microsoft Entra Authentifizierung zu verwenden, die auch den Header Authorization: Bearer verwendet, aber mit einem token, das über Microsoft Entra ID ausgestellt wurde. Siehe Use Microsoft Entra authentication.

So erhalten Sie ein STS-Zugriffstoken

Um ein STS-Zugriffstoken zu erhalten, senden Sie unter Verwendung von Ocp-Apim-Subscription-Key und Ihrem Ressourcenschlüssel eine Anforderung an den Endpunkt issueToken.

Der issueToken Endpunkt hat dieses Format:

https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken

Ersetzen Sie YourResourceName durch den Namen Ihrer Sprachressource.

Hinweis

Für diesen Endpunkt muss Ihre Ressource eine benutzerdefinierte Unterdomäne konfiguriert haben. Verwenden Sie für Ressourcen ohne benutzerdefinierte Domäne stattdessen den regionalen Endpunkt: https://<region>.api.cognitive.microsoft.com/sts/v1.0/issueToken. Ersetzen Sie <region> durch die Azure Region Ihrer Ressource (z. B. eastus).

Verwenden Sie die folgenden Beispiele, um Ihre Zugriffstokenanforderung zu erstellen.

HTTP-Beispiel

Dieses Beispiel ist eine einfache HTTP-Anforderung zum Abrufen eines Tokens. Ersetzen Sie YourSpeechResourceKey durch Ihren Ressourcenschlüssel für den Sprachdienst. Ersetzen Sie YourResourceName durch den Namen Ihrer Sprachressource.

POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YourSpeechResourceKey
Host: YourResourceName.cognitiveservices.azure.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0

Der Textkörper der Antwort enthält das Zugriffstoken im JWT-Format (JSON Web Token).

PowerShell-Beispiel

Dieses Beispiel ist ein einfaches PowerShell-Skript zum Abrufen eines Zugriffstokens. Ersetzen Sie YourSpeechResourceKey durch Ihren Ressourcenschlüssel für den Sprachdienst. Ersetzen Sie YourResourceName durch den Namen Ihrer Sprachressource.

$FetchTokenHeader = @{
  'Content-type'='application/x-www-form-urlencoded';
  'Content-Length'= '0';
  'Ocp-Apim-Subscription-Key' = 'YourSpeechResourceKey'
}

$OAuthToken = Invoke-RestMethod -Method POST `
    -Uri https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken `
    -Headers $FetchTokenHeader

# show the token received
$OAuthToken

cURL-Beispiel

cURL ist ein Befehlszeilentool, das in Linux (und im Windows-Subsystem für Linux) verfügbar ist. Dieser cURL-Befehl veranschaulicht das Abrufen eines Zugriffstokens. Ersetzen Sie YourSpeechResourceKey durch Ihren Ressourcenschlüssel für den Sprachdienst. Ersetzen Sie YourResourceName durch den Namen Ihrer Sprachressource.

curl -v -X POST \
 "https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken" \
 -H "Content-type: application/x-www-form-urlencoded" \
 -H "Content-Length: 0" \
 -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey"

C#-Beispiel

Diese C#-Klasse veranschaulicht, wie sie ein Zugriffstoken abrufen. Übergeben Sie den Ressourcenschlüssel für den Sprachdienst, wenn Sie die Klasse instanziieren. Ersetzen Sie YourResourceName durch den Namen Ihrer Sprachressource.

public class Authentication
{
    public static readonly string FetchTokenUri =
        "https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken";
    private string subscriptionKey;
    private string token;

    public Authentication(string subscriptionKey)
    {
        this.subscriptionKey = subscriptionKey;
        this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
    }

    public string GetAccessToken()
    {
        return this.token;
    }

    private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
            UriBuilder uriBuilder = new UriBuilder(fetchUri);

            var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
            Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
            return await result.Content.ReadAsStringAsync();
        }
    }
}

beispiel für Python

# Request module must be installed.
# Run pip install requests if necessary.
import requests

subscription_key = 'REPLACE_WITH_YOUR_KEY'


def get_token(subscription_key):
    fetch_token_url = 'https://YourResourceName.cognitiveservices.azure.com/sts/v1.0/issueToken'
    headers = {
        'Ocp-Apim-Subscription-Key': subscription_key
    }
    response = requests.post(fetch_token_url, headers=headers)
    access_token = str(response.text)
    print(access_token)

So verwenden Sie ein Zugriffstoken.

Das Zugriffstoken sollte als Header an den Authorization: Bearer <TOKEN> Dienst gesendet werden. Jedes Zugriffstoken ist 10 Minuten gültig. Sie können jederzeit ein neues Token abrufen, aber um den Netzwerkdatenverkehr und die Latenz zu minimieren, empfehlen wir die Verwendung desselben Tokens für neun Minuten.

Wichtig

Bearer-Token sind auf den Endpunkt beschränkt, der sie ausgestellt hat. Ein von YourResourceName.cognitiveservices.azure.com abgerufenes Token funktioniert nur für Anfragen an denselben Host. Ein Token von <region>.api.cognitive.microsoft.com funktioniert nur mit regionalen Speech-Endpunkten. Wenn Sie bei der Verwendung eines Bearer-Tokens einen 401-Fehler erhalten, verwenden Sie stattdessen Ocp-Apim-Subscription-Key mit Ihrem Ressourcenschlüssel, was mit allen Endpunktformaten funktioniert.

Hier ist eine Beispiel-HTTP-Anforderung an die SPRACH-ZU-Text-REST-API für kurze Audiodaten:

POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: YourResourceName.cognitiveservices.azure.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive

// Message body here...

Verwenden Sie die Microsoft Entra-Authentifizierung

Um Microsoft Entra Authentifizierung mit der Sprachausgabe-REST-API für kurze Audiodaten zu verwenden, müssen Sie ein Zugriffstoken erstellen. Die Schritte zum Abrufen des Zugriffstokens, das aus Ressourcen-ID und Microsoft Entra Zugriffstoken besteht, sind identisch mit der Verwendung des Speech SDK. Führen Sie die hier aufgeführten Schritte Use Microsoft Entra authentication

  • Erstellen einer Foundry-Ressource für Sprache
  • Konfigurieren der Sprachressource für Microsoft Entra Authentifizierung
  • Rufen Sie ein Microsoft Entra Zugriffstoken ab
  • Abrufen der ID der Sprachressource

Nachdem die Ressourcen-ID und das Microsoft Entra Zugriffstoken abgerufen wurden, kann das tatsächliche Zugriffstoken nach diesem Format erstellt werden:

aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN

Sie müssen das Präfix "aad#" und das Trennzeichen "#" (Hash) zwischen Ressourcen-ID und dem Zugriffstoken einschließen.

Hier ist eine Beispiel-HTTP-Anforderung an die SPRACH-ZU-Text-REST-API für kurze Audiodaten:

POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: YourResourceName.cognitiveservices.azure.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive

// Message body here...

Weitere Informationen zu Microsoft Entra Zugriffstoken, einschließlich der Tokenlebensdauer, finden Sie unter Access-Token im Microsoft Identity Platform.

Abruf einer Stimmauflistung

Sie können Ihren Sprachressourcenendpunkt verwenden, um eine vollständige Liste der Stimmen zu erhalten. Verwenden Sie den /tts/cognitiveservices/voices/list Pfad mit Ihrem Ressourcenendpunkt. Verwenden Sie z. B. den https://YourResourceName.cognitiveservices.azure.com/tts/cognitiveservices/voices/list Endpunkt. Eine Liste aller unterstützten Regionen finden Sie in der Regionsdokumentation .

Hinweis

Stimmen und Sprechstile in der Vorschau sind nur in einigen Regionen verfügbar. Die aktuelle Liste der Regionen, die Stimmen und Stile in der öffentlichen Vorschau unterstützen, finden Sie in der Tabelle "Sprachdienstbereiche".

Anforderungsheader

In dieser Tabelle sind die erforderlichen und optionalen Kopfzeilen für Text zu Sprachanforderungen aufgeführt:

Kopfzeile Beschreibung Erforderlich oder optional
Ocp-Apim-Subscription-Key Ihr Sprachressourcenschlüssel. Entweder diese Kopfzeile oder Authorization ist erforderlich.
Authorization Ein Autorisierungstoken vor dem Wort Bearer. Weitere Informationen finden Sie unter "Authentifizierung". Entweder diese Kopfzeile oder Ocp-Apim-Subscription-Key ist erforderlich.

Anforderungstext

Ein Text ist nicht erforderlich für GET-Anforderungen an diesen Endpunkt.

Beispielanforderung

Für diese Anforderung ist nur ein Autorisierungsheader erforderlich:

GET /tts/cognitiveservices/voices/list HTTP/1.1

Host: YourResourceName.cognitiveservices.azure.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY

Hier ist ein Beispiel für einen Curl-Befehl:

curl --location --request GET 'https://YourResourceName.cognitiveservices.azure.com/tts/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'

Beispielantwort

Sie sollten eine Antwort mit einem JSON-Text erhalten, der alle unterstützten Sprachregionen, Stimmen, Sprechergeschlecht, Stile und andere Details enthält. Die WordsPerMinute Eigenschaft für jede Stimme kann verwendet werden, um die Länge der Ausgabesprache zu schätzen. Dieses JSON-Beispiel zeigt Teilergebnisse, um die Struktur einer Antwort zu veranschaulichen:

[
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
        "DisplayName": "Jenny",
        "LocalName": "Jenny",
        "ShortName": "en-US-JennyNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "StyleList": [
          "assistant",
          "chat",
          "customerservice",
          "newscast",
          "angry",
          "cheerful",
          "sad",
          "excited",
          "friendly",
          "terrified",
          "shouting",
          "unfriendly",
          "whispering",
          "hopeful"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "152"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
        "DisplayName": "Jenny Multilingual",
        "LocalName": "Jenny Multilingual",
        "ShortName": "en-US-JennyMultilingualNeural",
        "Gender": "Female",
        "Locale": "en-US",
        "LocaleName": "English (United States)",
        "SecondaryLocaleList": [
          "de-DE",
          "en-AU",
          "en-CA",
          "en-GB",
          "es-ES",
          "es-MX",
          "fr-CA",
          "fr-FR",
          "it-IT",
          "ja-JP",
          "ko-KR",
          "pt-BR",
          "zh-CN"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "190"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
        "DisplayName": "Orla",
        "LocalName": "Orla",
        "ShortName": "ga-IE-OrlaNeural",
        "Gender": "Female",
        "Locale": "ga-IE",
        "LocaleName": "Irish (Ireland)",
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "WordsPerMinute": "139"
    },
    // Redacted for brevity
    {
        "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
        "DisplayName": "Yunxi",
        "LocalName": "云希",
        "ShortName": "zh-CN-YunxiNeural",
        "Gender": "Male",
        "Locale": "zh-CN",
        "LocaleName": "Chinese (Mandarin, Simplified)",
        "StyleList": [
          "narration-relaxed",
          "embarrassed",
          "fearful",
          "cheerful",
          "disgruntled",
          "serious",
          "angry",
          "sad",
          "depressed",
          "chat",
          "assistant",
          "newscast"
        ],
        "SampleRateHertz": "48000",
        "VoiceType": "Neural",
        "Status": "GA",
        "RolePlayList": [
          "Narrator",
          "YoungAdultMale",
          "Boy"
        ],
        "WordsPerMinute": "293"
    },
    // Redacted for brevity
]

HTTP-Statuscodes

Der HTTP-Statuscode für jede Antwort weist auf Erfolg oder häufige Fehler hin.

HTTP-Statuscode Beschreibung Mögliche Ursache
200 OKAY Die Anforderung war erfolgreich.
400 Ungültige Anforderung Ein erforderlicher Parameter fehlt, leer oder null. Oder der an einen erforderlichen oder optionalen Parameter übergebene Wert ist ungültig. Ein allgemeiner Grund ist eine zu lange Kopfzeile.
401 Unbefugt Die Anforderung ist nicht autorisiert. Stellen Sie sicher, dass ihr Ressourcenschlüssel oder -token gültig und in der richtigen Region ist.
429 Zu viele Anforderungen Sie haben das Kontingent oder die Rate der für Ihre Ressource zulässigen Anforderungen überschritten.
502 Ungültiges Gateway Es gibt ein Netzwerk- oder serverseitiges Problem. Dieser Status kann auch auf ungültige Kopfzeilen hinweisen.

Text in Sprache umwandeln

Mit dem cognitiveservices/v1 Endpunkt können Sie Text mithilfe von Speech Synthesis Markup Language (SSML) in Sprache konvertieren.

Regionen und Endpunkte

Diese Regionen werden für Text zu Sprache über die REST-API unterstützt. Achten Sie darauf, den Endpunkt auszuwählen, der Ihrer Sprachressourcenregion entspricht.

Standardstimmen

Verwenden Sie diese Tabelle, um die Verfügbarkeit von neuralen Stimmen nach Region oder Endpunkt zu ermitteln:

Region Endpunkt
Australien Ost https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1
Brasilien Süd https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1
Kanada Zentral https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1
Kanada Ost https://canadaeast.tts.speech.microsoft.com/cognitiveservices/v1
Zentral-USA https://centralus.tts.speech.microsoft.com/cognitiveservices/v1
Ostasien https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1
Ost-USA https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
Ost-USA 2 https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1
Frankreich Zentral https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1
Deutschland West Central https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1
Indien Zentral https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1
Italien Nord https://italynorth.tts.speech.microsoft.com/cognitiveservices/v1
Japan Ost https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1
Japan Westen https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1
Korea Central https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1
Nord-Mittel-USA https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Nordeuropa https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1
Norwegen Ost https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1
Katar Zentral https://qatarcentral.tts.speech.microsoft.com/cognitiveservices/v1
Südafrika Nord https://southafricanorth.tts.speech.microsoft.com/cognitiveservices/v1
Süd-Mittel-USA https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Südostasien https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1
Schweden Zentral https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1
Schweiz Nord https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1
Schweiz West https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1
Vereinigte Arabische Emirate (Nord) https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1
Vereinigtes Königreich Süd https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1
Vereinigtes Königreich West https://ukwest.tts.speech.microsoft.com/cognitiveservices/v1
US-Regierung Arizona https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1
US-Regierung Virginia https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1
Zentralwesten der USA https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1
Westeuropa https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1
USA, Westen https://westus.tts.speech.microsoft.com/cognitiveservices/v1
USA, Westen 2 https://westus2.tts.speech.microsoft.com/cognitiveservices/v1
USA, Westen 3 https://westus3.tts.speech.microsoft.com/cognitiveservices/v1

Tipp

Die aktuelle Liste der Regionen, die Stimmen in der Vorschau unterstützen, finden Sie in der Tabelle "Sprachdienstbereiche".

Benutzerdefinierte Stimmen

Wenn Sie eine benutzerdefinierte Stimme erstellt haben, verwenden Sie den Endpunkt, den Sie erstellt haben. Sie können auch die folgenden Endpunkte verwenden. Ersetzen Sie {deploymentId} durch die Bereitstellungs-ID für Ihr benutzerdefiniertes Sprachmodell.

Region Ausbildung Einsatz Endpunkt
Australien Ost Ja Ja https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Brasilien Süd Nein Ja https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Kanada Zentral Nein Ja https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zentral-USA Nein Ja https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Ostasien Nein Ja https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Ost-USA Ja Ja https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Ost-USA 2 Ja Ja https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Frankreich Zentral Nein Ja https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Deutschland West Central Nein Ja https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Indien Zentral Ja Ja https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Italien Nord Nein Ja https://italynorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japan Ost Ja Ja https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Japan Westen Nein Ja https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Korea Central Ja Ja https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Nord-Mittel-USA Nein Ja https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Nordeuropa Ja Ja https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Norwegen Ost Nein Ja https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Südafrika Nord Nein Ja https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Süd-Mittel-USA Ja Ja https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Südostasien Ja Ja https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Schweden Zentral Nein Ja https://swedencentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Schweiz Nord Nein Ja https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Schweiz West Nein Ja https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Vereinigte Arabische Emirate (Nord) Nein Ja https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Vereinigtes Königreich Süd Ja Ja https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Zentralwesten der USA Nein Ja https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
Westeuropa Ja Ja https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, Westen Ja Ja https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, Westen 2 Ja Ja https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}
USA, Westen 3 Nein Ja https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId}

Hinweis

Die vorstehenden Regionen sind für die Standardmäßige VoIP-Modellhosting- und Echtzeitsynthese verfügbar. Benutzerdefinierte Sprachschulungen sind nur in einigen Regionen verfügbar. Sie können jedoch ganz einfach ein benutzerdefiniertes VoIP-Modell aus diesen Regionen in andere Regionen in der vorherigen Liste kopieren.

API für lange Audioinhalte

Die lange Audio-API ist in mehreren Regionen mit eindeutigen Endpunkten verfügbar:

Region Endpunkt
Australien Ost https://australiaeast.customvoice.api.speech.microsoft.com
Ost-USA https://eastus.customvoice.api.speech.microsoft.com
Indien Zentral https://centralindia.customvoice.api.speech.microsoft.com
Süd-Mittel-USA https://southcentralus.customvoice.api.speech.microsoft.com
Südostasien https://southeastasia.customvoice.api.speech.microsoft.com
Vereinigtes Königreich Süd https://uksouth.customvoice.api.speech.microsoft.com
Westeuropa https://westeurope.customvoice.api.speech.microsoft.com

Anforderungsheader

In dieser Tabelle sind die erforderlichen und optionalen Kopfzeilen für Text zu Sprachanforderungen aufgeführt:

Kopfzeile Beschreibung Erforderlich oder optional
Authorization Ein Autorisierungstoken vor dem Wort Bearer. Weitere Informationen finden Sie unter "Authentifizierung". Erforderlich
Content-Type Gibt den Inhaltstyp für den bereitgestellten Text an. Akzeptierter Wert: application/ssml+xml. Erforderlich
X-Microsoft-OutputFormat Gibt das Audioausgabeformat an. Eine vollständige Liste der akzeptierten Werte finden Sie unter "Audioausgabe". Erforderlich
User-Agent Der Anwendungsname. Der angegebene Wert muss weniger als 255 Zeichen lang sein. Erforderlich

Anforderungstext

Wenn Sie eine benutzerdefinierte Stimme verwenden, kann der Textkörper einer Anforderung als Nur-Text (ASCII oder UTF-8) gesendet werden. Andernfalls wird der Textkörper jeder POST Anforderung als SSML gesendet. Mit SSML können Sie die Stimme und Sprache der synthetisierten Sprache auswählen, die von der Text-zu-Sprache-Funktion zurückgegeben wird. Eine vollständige Liste der unterstützten Stimmen finden Sie unter Sprach- und Sprachunterstützung für den Sprachdienst.

Beispielanforderung

Diese HTTP-Anforderung verwendet SSML, um die Stimme und Sprache anzugeben. Wenn die Körperlänge lang ist und das resultierende Audio 10 Minuten überschreitet, wird es auf 10 Minuten verkürzt. Mit anderen Worten, die Audiolänge darf 10 Minuten nicht überschreiten.

POST /cognitiveservices/v1 HTTP/1.1

X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: YourResourceName.cognitiveservices.azure.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>

<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
    name='en-US-ChristopherNeural'>
        I'm excited to try text to speech!
</voice></speak>

* Für die Content-Length sollten Sie Ihre eigene Inhaltslänge verwenden. In den meisten Fällen wird dieser Wert automatisch berechnet.

HTTP-Statuscodes

Der HTTP-Statuscode für jede Antwort weist auf Erfolg oder häufige Fehler hin:

HTTP-Statuscode Beschreibung Mögliche Ursache
200 OKAY Die Anforderung war erfolgreich. Der Antworttext ist eine Audiodatei.
400 Ungültige Anforderung Ein erforderlicher Parameter fehlt, leer oder null. Oder der an einen erforderlichen oder optionalen Parameter übergebene Wert ist ungültig. Ein allgemeiner Grund ist eine zu lange Kopfzeile.
401 Unbefugt Die Anforderung ist nicht autorisiert. Stellen Sie sicher, dass ihr Sprachressourcenschlüssel oder -token gültig und in der richtigen Region ist.
415 Nicht unterstützter Medientyp Es ist möglich, dass der falsche Content-Type Wert angegeben wurde. Content-Type sollte auf application/ssml+xml gesetzt werden.
429 Zu viele Anforderungen Sie haben das Kontingent oder die Rate der für Ihre Ressource zulässigen Anforderungen überschritten.
502 Ungültiges Gateway Es gibt ein Netzwerk- oder serverseitiges Problem. Dieser Status kann auch auf ungültige Kopfzeilen hinweisen.
503 Dienst nicht verfügbar Aus verschiedenen Gründen gibt es ein serverseitiges Problem.

Wenn der HTTP-Status lautet 200 OK, enthält der Textkörper der Antwort eine Audiodatei im angeforderten Format. Diese Datei kann bei der Übertragung abgespielt sowie in einem Puffer oder in einer Datei gespeichert werden.

Audioausgabe

Die unterstützten Streaming- und Nichtstreaming-Audioformate werden in jeder Anforderung als header X-Microsoft-OutputFormat gesendet. Jedes Format enthält eine Bitrate und einen Codierungstyp. Der Sprachdienst unterstützt 48-kHz-, 24-kHz-, 16-kHz- und 8-kHz-Audioausgaben. Jedes Standard-Sprachmodell ist in 24kHz und hochauflösender 48kHz verfügbar.

amr-wb-16000hz
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3
audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3
audio-48khz-192kbitrate-mono-mp3
g722-16khz-64kbps
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
raw-8khz-16bit-mono-pcm
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus

Hinweis

Wenn Sie das Ausgabeformat 48 kHz auswählen, wird das High-Fidelity-VoIP-Modell mit 48kHz entsprechend aufgerufen. Die Sampleraten außer 24 kHz und 48 kHz können durch Upsampling oder Downsampling bei der Synthese erhalten werden, z. B. wird 44,1 kHz von 48 kHz heruntergesampelt.

Wenn Ihr ausgewähltes Sprach- und Ausgabeformat unterschiedliche Bitraten aufweist, wird das Audio bei Bedarf neu abgetastet. Sie können das Format mithilfe des ogg-24khz-16bit-mono-opusOpus-Codecs decodieren.

Nächste Schritte