Tekst-naar-spraakcontainers met Docker

De neurale tekst naar spraakcontainer converteert tekst naar natuurlijke spraak met behulp van deep neurale netwerktechnologie, waardoor natuurlijkere gesynthetiseerde spraak mogelijk is. In dit artikel leert u hoe u een tekst-naar-spraakcontainer downloadt, installeert en uitvoert.

Voor meer informatie over vereisten, valideren dat een container wordt uitgevoerd, meerdere containers op dezelfde host uitvoeren en niet-verbonden containers uitvoeren, raadpleegt u Speech-containers installeren en uitvoeren met Docker.

Containerinstallatiekopieën

De neurale tekst naar spraakcontainerinstallatiekopie voor alle ondersteunde versies en landinstellingen vindt u in het MCR-syndicat (Microsoft Container Registry). Deze bevindt zich in de azure-cognitive-services/speechservices/ opslagplaats en heeft de naam neural-text-to-speech.

A screenshot of the search connectors and triggers dialog.

De volledig gekwalificeerde containerinstallatiekopieënnaam is. mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech Voeg een specifieke versie toe of voeg toe :latest om de meest recente versie op te halen.

Versie Pad
Laatste mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

De latest tag haalt de en-US landinstelling en en-us-arianeural stem op.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

Alle tags, met uitzondering van latest, hebben de volgende indeling en zijn hoofdlettergevoelig:

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

De tags zijn ook beschikbaar in JSON-indeling voor uw gemak. De hoofdtekst bevat het containerpad en de lijst met tags. De tags worden niet gesorteerd op versie, maar "latest" worden altijd opgenomen aan het einde van de lijst, zoals wordt weergegeven in dit fragment:

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

Belangrijk

We hebben de standaard spraaksynthesestemmen en standaardtekst op 31 augustus 2021 buiten gebruik gesteld. Gebruik in plaats daarvan neurale stemmen met de neurale-tekst-naar-spraakcontainer versie 3.0 en hoger.

Vanaf 29 februari 2024 worden de tekst naar spraak en neurale tekst naar spraakcontainerversie 2.19 en eerder niet ondersteund. Zie Migreren van standaardstem naar vooraf samengestelde neurale spraak voor meer informatie over het bijwerken van uw toepassing.

De containerinstallatiekopie ophalen met docker pull

U hebt de vereisten nodig, inclusief vereiste hardware. Zie ook de aanbevolen toewijzing van resources voor elke Speech-container.

Gebruik de opdracht docker pull om een containerinstallatiekopie te downloaden uit Microsoft Container Registry:

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

Belangrijk

De latest tag haalt de en-US landinstelling en en-us-arianeural stem op. Zie tekst naar spraakcontainerinstallatiekopieën voor aanvullende landinstellingen en stemmen.

De container uitvoeren met docker-uitvoering

Gebruik de opdracht docker run om de container uit te voeren.

De volgende tabel vertegenwoordigt de verschillende docker run parameters en de bijbehorende beschrijvingen:

Parameter Description
{ENDPOINT_URI} Het eindpunt is vereist voor het meten en factureren. Zie factureringsargumenten voor meer informatie.
{API_KEY} De API-sleutel is vereist. Zie factureringsargumenten voor meer informatie.

Wanneer u de tekst naar spraakcontainer uitvoert, configureert u de poort, het geheugen en de CPU op basis van de vereisten en aanbevelingen voor spraakcontainers.

Hier volgt een voorbeeldopdracht docker run met tijdelijke aanduidingen. U moet de ENDPOINT_URI en API_KEY waarden opgeven:

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}

Met deze opdracht gebeurt het volgende:

  • Voert een neurale tekst naar spraakcontainer uit vanuit de containerinstallatiekopie.
  • Wijst 6 CPU-kernen en 12 GB geheugen toe.
  • Maakt TCP-poort 5000 beschikbaar en wijst een pseudo-TTY toe voor de container.
  • Hiermee wordt de container automatisch verwijderd nadat deze is afgesloten. De containerinstallatiekopie is nog steeds beschikbaar op de hostcomputer.

Zie Speech-containers installeren en uitvoeren met Docker voor meer informatie over docker run spraakcontainers.

De container gebruiken

Spraakcontainers bieden websocket-api's voor query-eindpunten die toegankelijk zijn via de Speech SDK en Speech CLI. De Speech SDK en Speech CLI maken standaard gebruik van de openbare Speech-service. Als u de container wilt gebruiken, moet u de initialisatiemethode wijzigen.

Belangrijk

Wanneer u de Speech-service met containers gebruikt, moet u hostverificatie gebruiken. Als u de sleutel en regio configureert, worden aanvragen naar de openbare Spraak-service verzonden. Resultaten van de Speech-service zijn mogelijk niet wat u verwacht. Aanvragen van niet-verbonden containers mislukken.

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met de containerhost:

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

In plaats van deze azure-cloud-initialisatieconfiguratie te gebruiken:

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

Gebruik deze configuratie met het containereindpunt:

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

Wanneer u de Speech CLI in een container gebruikt, neemt u de --host http://localhost:5000/ optie op. U moet ook opgeven --key none om ervoor te zorgen dat de CLI geen spraaksleutel probeert te gebruiken voor verificatie. Zie Aan de slag met de Azure AI Speech CLI voor informatie over het configureren van de Speech CLI.

Probeer de snelstart voor tekst naar spraak met behulp van hostverificatie in plaats van sleutel en regio.

SSML-spraakelement

Wanneer u een neurale tekst maakt voor spraak HTTP POST, vereist het SSML-bericht een voice element met een name kenmerk. De landinstelling van de stem moet overeenkomen met de landinstelling van het containermodel.

Een model dat is gedownload via de latest tag (standaard ingesteld op 'en-US') heeft bijvoorbeeld een spraaknaam van 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>

Volgende stappen