Text till tal-containrar med Docker

Containern neural text till tal konverterar text till naturligt klingande tal med hjälp av djup neural nätverksteknik, vilket möjliggör mer naturligt syntetiserat tal. I den här artikeln får du lära dig hur du laddar ned, installerar och kör en text-till-tal-container.

Mer information om förutsättningar, verifiering av att en container körs, körning av flera containrar på samma värd och körning av frånkopplade containrar finns i Installera och köra Speech-containrar med Docker.

Containeravbildningar

Den neurala text till talcontaineravbildningen för alla versioner och nationella inställningar som stöds finns i MCR-syndikatet (Microsoft Container Registry). Den finns på lagringsplatsen azure-cognitive-services/speechservices/ och heter neural-text-to-speech.

A screenshot of the search connectors and triggers dialog.

Det fullständigt kvalificerade containeravbildningsnamnet är , mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech. Lägg antingen till en viss version eller lägg till :latest för att hämta den senaste versionen.

Version Sökväg
Senast mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

Taggen latest hämtar en-US nationella inställningar och en-us-arianeural röst.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

Alla taggar, förutom latest, är i följande format och är skiftlägeskänsliga:

<major>.<minor>.<patch>-<platform>-<voice>-<preview>

Taggarna är också tillgängliga i JSON-format för din bekvämlighet. Brödtexten innehåller containersökvägen och listan med taggar. Taggarna sorteras inte efter version, men "latest" ingår alltid i slutet av listan enligt följande kodfragment:

{
  "name": "azure-cognitive-services/speechservices/neural-text-to-speech",
  "tags": [
    <--redacted for brevity-->
    "3.1.0-amd64-en-us-arianeural",
    "3.1.0-amd64-en-us-guyneural",
    "3.1.0-amd64-en-us-jennymultilingualneural",
    "3.1.0-amd64-en-us-jennyneural",
    "3.1.0-amd64-en-us-michelleneural",
    "3.1.0-amd64-es-es-alvaroneural",
    "3.1.0-amd64-es-es-elviraneural",
    "3.1.0-amd64-es-mx-candelaneural",
    "3.1.0-amd64-es-mx-dalianeural",
    "3.1.0-amd64-es-mx-jorgeneural",
    <--redacted for brevity-->
    "latest"
  ]
}

Viktigt!

Den 31 augusti 2021 drog vi tillbaka standardtalsyntesrösterna och standardtexten till talcontainern . Du bör använda neurala röster med containerversionen 3.0 för neural text till tal i stället.

Från och med den 29 februari 2024 stöds inte text till tal och neural text till talcontainerversion 2.19 och tidigare. Mer information om hur du uppdaterar programmet finns i Migrera från standardröst till fördefinierad neural röst.

Hämta containeravbildningen med docker pull

Du behöver kraven, inklusive nödvändig maskinvara. Se även den rekommenderade allokeringen av resurser för varje Speech-container.

Använd docker pull-kommandot för att ladda ned en containeravbildning från Microsoft Container Registry:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

Viktigt!

Taggen latest hämtar en-US nationella inställningar och en-us-arianeural röst. Ytterligare språk och röster finns i text till talcontaineravbildningar.

Kör containern med docker-körning

Använd kommandot docker run för att köra containern.

Följande tabell representerar de olika docker run parametrarna och deras motsvarande beskrivningar:

Parameter Description
{ENDPOINT_URI} Slutpunkten krävs för mätning och fakturering. Mer information finns i faktureringsargument.
{API_KEY} API-nyckeln krävs. Mer information finns i faktureringsargument.

När du kör text-till-tal-containern konfigurerar du porten, minnet och PROCESSORn enligt kraven och rekommendationerna för text-till-talcontainern.

Här är ett exempelkommando docker run med platshållarvärden. Du måste ange ENDPOINT_URI värdena och API_KEY :

docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Det här kommandot:

  • Kör en neural text till talcontainer från containeravbildningen.
  • Allokerar 6 CPU-kärnor och 12 GB minne.
  • Exponerar TCP-port 5000 och allokerar en pseudo-TTY för containern.
  • Tar automatiskt bort containern när den har avslutats. Containeravbildningen är fortfarande tillgänglig på värddatorn.

Mer information om docker run med Speech-containrar finns i Installera och köra Speech-containrar med Docker.

Använda containern

Talcontainrar tillhandahåller websocketbaserade frågeslutpunkts-API:er som nås via Speech SDK och Speech CLI. Som standard använder Speech SDK och Speech CLI den offentliga Speech-tjänsten. Om du vill använda containern måste du ändra initieringsmetoden.

Viktigt!

När du använder Speech-tjänsten med containrar måste du använda värdautentisering. Om du konfigurerar nyckeln och regionen går begäranden till den offentliga Speech-tjänsten. Resultat från Speech-tjänsten kanske inte är vad du förväntar dig. Begäranden från frånkopplade containrar misslyckas.

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

var config = SpeechConfig.FromSubscription(...);

Använd den här konfigurationen med containervärden:

var config = SpeechConfig.FromHost(
    new Uri("http://localhost:5000"));

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

auto speechConfig = SpeechConfig::FromSubscription(...);

Använd den här konfigurationen med containervärden:

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

Använd den här konfigurationen med containervärden:

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

Använd den här konfigurationen med containervärden:

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

Använd den här konfigurationen med containervärden:

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

Använd den här konfigurationen med containervärden:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

Använd den här konfigurationen med containervärden:

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

I stället för att använda den här initieringskonfigurationen för Azure-molnet:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

Använd den här konfigurationen med containerslutpunkten:

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

När du använder Speech CLI i en container inkluderar du alternativet --host http://localhost:5000/ . Du måste också ange --key none för att säkerställa att CLI inte försöker använda en Talnyckel för autentisering. Information om hur du konfigurerar Speech CLI finns i Komma igång med Azure AI Speech CLI.

Prova snabbstarten text till tal med värdautentisering i stället för nyckel och region.

SSML-röstelement

När du skapar en neural text till HTTP POST för tal kräver SSML-meddelandet ett voice element med ett name attribut. Språkvarianten för rösten måste motsvara containermodellens nationella inställningar.

Till exempel skulle en modell som laddades ned via taggen latest (standardvärdet "en-US") ha ett röstnamn på en-US-AriaNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        This is the text that is spoken.
    </voice>
</speak>

Nästa steg