Kontenery zamiany tekstu na mowę za pomocą platformy Docker

Kontener zamiany tekstu neuronowego na mowę konwertuje tekst na naturalnie brzmiącą mowę przy użyciu głębokiej technologii sieci neuronowej, która umożliwia bardziej naturalną syntetyzowany mowę. Z tego artykułu dowiesz się, jak pobrać, zainstalować i uruchomić kontener zamiany tekstu na mowę.

Aby uzyskać więcej informacji na temat wymagań wstępnych, sprawdzania poprawności działania kontenera, uruchamiania wielu kontenerów na tym samym hoście i uruchamiania odłączonych kontenerów, zobacz Instalowanie i uruchamianie kontenerów usługi Mowa za pomocą platformy Docker.

Obrazy kontenerów

Obraz kontenera neuronowego zamiany tekstu na mowę dla wszystkich obsługiwanych wersji i ustawień regionalnych można znaleźć w syndykacie usługi Microsoft Container Registry (MCR). Znajduje się on w azure-cognitive-services/speechservices/ repozytorium i ma nazwę neural-text-to-speech.

A screenshot of the search connectors and triggers dialog.

W pełni kwalifikowana nazwa obrazu kontenera to mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech. Dołącz określoną wersję lub dołącz, :latest aby uzyskać najnowszą wersję.

Wersja Ścieżka
Najnowsze mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest

Tag latest ściąga en-US ustawienia regionalne i en-us-arianeural głosowe.
3.1.0 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.1.0-amd64-en-us-arianeural

Wszystkie tagi, z wyjątkiem latest, mają następujący format i są uwzględniane wielkość liter:

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

Tagi są również dostępne w formacie JSON dla Wygody. Treść zawiera ścieżkę kontenera i listę tagów. Tagi nie są sortowane według wersji, ale "latest" są zawsze uwzględniane na końcu listy, jak pokazano w tym fragmencie kodu:

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

Ważne

Wycofaliśmy standardowe głosy syntezy mowy i standardowy kontener zamiany tekstu na mowę 31 sierpnia 2021 r. Zamiast tego należy używać neuronowych głosów z kontenerem neuronowego zamiany tekstu na mowę w wersji 3.0 lub nowszej.

Od 29 lutego 2024 r. tekst na mowę i tekst neuronowy do kontenera mowy w wersji 2.19 i starszych nie są obsługiwane. Aby uzyskać więcej informacji na temat aktualizowania aplikacji, zobacz Migrowanie ze standardowego głosu do wstępnie utworzonego neuronowego głosu.

Pobieranie obrazu kontenera za pomocą ściągania platformy Docker

Potrzebujesz wymagań wstępnych , w tym wymaganego sprzętu. Zobacz również zalecaną alokację zasobów dla każdego kontenera usługi Mowa.

Użyj polecenia docker pull, aby pobrać obraz kontenera z usługi Microsoft Container Registry:

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

Ważne

Tag latest ściąga en-US ustawienia regionalne i en-us-arianeural głosowe. Aby uzyskać dodatkowe ustawienia regionalne i głosy, zobacz tekst obrazów kontenera mowy.

Uruchamianie kontenera za pomocą uruchamiania platformy Docker

Użyj polecenia docker run, aby uruchomić kontener.

W poniższej tabeli przedstawiono różne docker run parametry i odpowiadające im opisy:

Parametr Opis
{ENDPOINT_URI} Punkt końcowy jest wymagany do pomiaru i rozliczeń. Aby uzyskać więcej informacji, zobacz argumenty rozliczeniowe.
{API_KEY} Klucz interfejsu API jest wymagany. Aby uzyskać więcej informacji, zobacz argumenty rozliczeniowe.

Po uruchomieniu kontenera zamiany tekstu na mowę skonfiguruj port, pamięć i procesor CPU zgodnie z wymaganiami i zaleceniami dotyczącymi kontenera mowy.

Oto przykładowe docker run polecenie z wartościami zastępczymi. Należy określić ENDPOINT_URI wartości i 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}

To polecenie:

  • Uruchamia neuronowy tekst do kontenera mowy z obrazu kontenera.
  • Przydziela 6 rdzeni procesora CPU i 12 GB pamięci.
  • Uwidacznia port TCP 5000 i przydziela pseudo-TTY dla kontenera.
  • Automatycznie usuwa kontener po jego zakończeniu. Obraz kontenera jest nadal dostępny na komputerze hosta.

Aby uzyskać więcej informacji na temat docker run kontenerów usługi Mowa, zobacz Instalowanie i uruchamianie kontenerów usługi Mowa za pomocą platformy Docker.

Korzystanie z kontenera

Kontenery mowy udostępniają internetowe interfejsy API punktów końcowych zapytań oparte na protokole Websocket, które są dostępne za pośrednictwem zestawu SPEECH SDK i interfejsu wiersza polecenia usługi Mowa. Domyślnie zestaw SDK usługi Mowa i interfejs wiersza polecenia usługi Mowa używają publicznej usługi rozpoznawania mowy. Aby użyć kontenera, należy zmienić metodę inicjowania.

Ważne

W przypadku korzystania z usługi Mowa z kontenerami upewnij się, że używasz uwierzytelniania hosta. Jeśli skonfigurujesz klucz i region, żądania będą kierowane do publicznej usługi rozpoznawania mowy. Wyniki z usługi Mowa mogą nie być oczekiwane. Żądania od odłączonych kontenerów zakończą się niepowodzeniem.

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z hostem kontenera:

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

Zamiast używać tej konfiguracji inicjowania chmury platformy Azure:

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

Użyj tej konfiguracji z punktem końcowym kontenera:

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

Jeśli używasz interfejsu wiersza polecenia usługi Mowa w kontenerze, dołącz --host http://localhost:5000/ opcję . Należy również określić --key none , aby upewnić się, że interfejs wiersza polecenia nie próbuje użyć klucza mowy do uwierzytelniania. Aby uzyskać informacje o sposobie konfigurowania interfejsu wiersza polecenia usługi Mowa, zobacz Rozpoczynanie pracy z interfejsem wiersza polecenia usługi Azure AI Speech.

Spróbuj wykonać przewodnik Szybki start dotyczący zamiany tekstu na mowę przy użyciu uwierzytelniania hosta zamiast klucza i regionu.

Element głosu SSML

Podczas konstruowania tekstu neuronowego na mowę HTTP POST komunikat SSML wymaga voice elementu z atrybutem name . Ustawienia regionalne głosu muszą odpowiadać ustawień regionalnych modelu kontenera.

Na przykład model pobrany za pośrednictwem tagu latest (domyślnie "en-US") będzie miał nazwę en-US-AriaNeuralgłosu .

<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>

Następne kroki