Instalowanie i uruchamianie kontenerów usługi Mowa za pomocą platformy Docker

Za pomocą kontenerów można użyć podzbioru funkcji usługi Mowa we własnym środowisku. Z tego artykułu dowiesz się, jak pobrać, zainstalować i uruchomić kontener usługi Speech.

Uwaga

Odłączone warstwy cenowe i warstwy zobowiązania kontenera różnią się od standardowych kontenerów. Aby uzyskać więcej informacji, zobacz Cennik usługi Mowa.

Wymagania wstępne

Przed użyciem kontenerów usługi Mowa należy spełnić następujące wymagania wstępne. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Należy wykonać:

  • Platforma Docker zainstalowana na komputerze hosta. Platforma Docker musi być skonfigurowana tak, aby umożliwić kontenerom łączenie się z platformą Azure i wysyłanie danych rozliczeniowych do platformy Azure.
    • W systemie Windows platforma Docker musi być również skonfigurowana do obsługi kontenerów systemu Linux.
    • Musisz mieć podstawową wiedzę na temat pojęć związanych z platformą Docker.
  • Zasób usługi Mowa z warstwą cenową Bezpłatna (F0) lub Standardowa (S).

Argumenty rozliczeniowe

Kontenery mowy nie mają licencji na uruchamianie bez nawiązywania połączenia z platformą Azure na potrzeby pomiarów. Należy skonfigurować kontener tak, aby zawsze komunikował się z usługą pomiaru rozliczeń.

Wymagane są trzy podstawowe parametry dla wszystkich kontenerów sztucznej inteligencji platformy Azure. Postanowienia licencyjne dotyczące oprogramowania firmy Microsoft muszą być obecne z wartością akceptacji. Wymagany jest również identyfikator URI punktu końcowego i klucz interfejsu API.

Zapytania do kontenera są rozliczane w warstwie cenowej zasobu platformy Azure używanego dla parametru ApiKey .

Polecenie docker run uruchamia kontener, gdy wszystkie trzy z następujących opcji są dostarczane z prawidłowymi wartościami:

Opcja Opis
ApiKey Klucz interfejsu API zasobu usługi Mowa używany do śledzenia informacji rozliczeniowych.
Wartość ApiKey jest używana do uruchamiania kontenera i jest dostępna na stronie Klucze witryny Azure Portal odpowiedniego zasobu usługi Mowa. Przejdź do strony Klucze i wybierz ikonę Kopiuj do schowka .
Billing Punkt końcowy zasobu usługi Mowa używany do śledzenia informacji rozliczeniowych.
Punkt końcowy jest dostępny na stronie Przegląd witryny Azure Portal odpowiedniego zasobu usługi Mowa. Przejdź do strony Przegląd , umieść kursor nad punktem końcowym, a zostanie wyświetlona ikona Kopiuj do schowka . Skopiuj i użyj punktu końcowego w razie potrzeby.
Eula Wskazuje, że zaakceptowano licencję dla kontenera.
Wartość tej opcji należy ustawić tak, aby akceptowała.

Ważne

Te klucze subskrypcji są używane do uzyskiwania dostępu do interfejsu API usług Azure AI. Nie udostępniaj kluczy. Przechowuj je bezpiecznie. Na przykład użyj usługi Azure Key Vault. Zalecamy również regularne ponowne generowanie tych kluczy. Tylko jeden klucz jest wymagany do wykonania wywołania interfejsu API. Podczas ponownego generowania pierwszego klucza można użyć drugiego klucza w celu dalszego dostępu do usługi.

Do uruchomienia kontenera potrzebne są wartości argumentów rozliczeniowych. Te wartości umożliwiają kontenerowi łączenie się z punktem końcowym rozliczeń. Kontener raportuje użycie co około 10 do 15 minut. Jeśli kontener nie łączy się z platformą Azure w dozwolonym przedziale czasu, kontener będzie nadal działać, ale nie obsługuje zapytań, dopóki punkt końcowy rozliczeń nie zostanie przywrócony. Próba nawiązania połączenia jest podejmowana 10 razy w tym samym przedziale czasu od 10 do 15 minut. Jeśli nie może nawiązać połączenia z punktem końcowym rozliczeń w ciągu 10 prób, kontener przestanie obsługiwać żądania. Aby zapoznać się z przykładem informacji wysyłanych do firmy Microsoft na potrzeby rozliczeń, zobacz często zadawane pytania dotyczące kontenera usługi Azure AI w dokumentacji usług AI platformy Azure.

Aby uzyskać więcej informacji na temat tych opcji, zobacz Konfigurowanie kontenerów.

Wymagania i zalecenia dotyczące kontenerów

W poniższej tabeli opisano minimalną i zalecaną alokację zasobów dla każdego kontenera usługi Mowa:

Kontener Minimum Zalecane Model mowy
Zamiana mowy na tekst 4 rdzenie, 4 GB pamięci 8 rdzeni, 8 GB pamięci +4 do 8 GB pamięci
Zamiana mowy niestandardowej na tekst 4 rdzenie, 4 GB pamięci 8 rdzeni, 8 GB pamięci +4 do 8 GB pamięci
Identyfikacja języka mowy 1 rdzeń, 1 GB pamięci 1 rdzeń, 1 GB pamięci nie dotyczy
Neuronowa zamiana tekstu na mowę 6 rdzeni, 12 GB pamięci 8 rdzeni, 16 GB pamięci nie dotyczy

Każdy rdzeń musi być co najmniej 2,6 gigahertz (GHz) lub szybszy.

Rdzeń i pamięć odpowiadają --cpus ustawieniu i --memory , które są używane w ramach docker run polecenia .

Uwaga

Minimalne i zalecane alokacje są oparte na limitach platformy Docker, a nie na zasobach maszyny hosta. Na przykład zamiana mowy na kontenery tekstu mapuje części dużego modelu językowego. Zalecamy, aby cały plik mieścił się w pamięci. Aby załadować modele mowy, należy dodać dodatkowe 4 do 8 GB (zobacz poprzednią tabelę). Ponadto pierwsze uruchomienie dowolnego kontenera może trwać dłużej, ponieważ modele są stronicowane w pamięci.

Wymagania i zalecenia dotyczące komputera hosta

Host to komputer oparty na architekturze x64 z uruchomionym kontenerem platformy Docker. Może to być komputer lokalny lub usługa hostingu platformy Docker na platformie Azure, taka jak:

Uwaga

Kontenery obsługują skompresowane dane wejściowe audio do zestawu SPEECH SDK przy użyciu usługi GStreamer. Aby zainstalować usługę GStreamer w kontenerze, postępuj zgodnie z instrukcjami systemu Linux dotyczącymi usługi GStreamer w temacie Use codec compressed audio input with the Speech SDK (Używanie skompresowanych danych dźwiękowych kodera za pomocą zestawu SPEECH SDK).

Obsługa zaawansowanych rozszerzeń wektorów

Host to komputer z uruchomionym kontenerem platformy Docker. Host musi obsługiwaćzaawansowane rozszerzenia wektorów (AVX2). Możesz sprawdzić obsługę avX2 na hostach z systemem Linux za pomocą następującego polecenia:

grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected

Ostrzeżenie

Komputer-host jest wymagany do obsługi avX2. Kontener nie będzie działać poprawnie bez obsługi AVX2.

Uruchamianie kontenera

Użyj polecenia docker run, aby uruchomić kontener. Po uruchomieniu kontener będzie nadal działać do momentu zatrzymania kontenera.

Zanotuj docker run następujące najlepsze rozwiązania za pomocą polecenia :

  • Znak kontynuacji wiersza: polecenia platformy Docker w poniższych sekcjach używają ukośnika odwrotnego , \jako znaku kontynuacji wiersza. Zastąp lub usuń ten znak na podstawie wymagań systemu operacyjnego hosta.
  • Kolejność argumentów: nie zmieniaj kolejności argumentów, chyba że znasz kontenery platformy Docker.

Możesz użyć polecenia docker images , aby wyświetlić listę pobranych obrazów kontenerów. Następujące polecenie zawiera listę identyfikatorów, repozytorium i tagów każdego pobranego obrazu kontenera sformatowanego jako tabela:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

Oto przykładowy wynik:

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Sprawdzanie, czy kontener jest uruchomiony

Istnieje kilka sposobów sprawdzania, czy kontener jest uruchomiony. Znajdź zewnętrzny adres IP i uwidoczniony port danego kontenera i otwórz ulubioną przeglądarkę internetową. Użyj różnych adresów URL żądań, które są zgodne z instrukcjami, aby sprawdzić, czy kontener jest uruchomiony.

Przykładowe adresy URL żądań wymienione w tym miejscu to http://localhost:5000, ale określony kontener może się różnić. Upewnij się, że korzystasz z zewnętrznego adresu IP kontenera i uwidocznij port.

Zażądaj URL Purpose
http://localhost:5000/ Kontener zawiera stronę główną.
http://localhost:5000/ready Żądany przy użyciu polecenia GET ten adres URL zapewnia weryfikację, że kontener jest gotowy do akceptowania zapytania względem modelu. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes.
http://localhost:5000/status Ten adres URL sprawdza również, czy klucz api-key używany do uruchamiania kontenera jest prawidłowy bez powodowania zapytania punktu końcowego. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes.
http://localhost:5000/swagger Kontener zawiera pełen zestaw dokumentacji dla punktów końcowych oraz funkcję Wypróbuj. Dzięki tej funkcji możesz wprowadzić ustawienia w formularzu HTML opartym na sieci Web i utworzyć zapytanie bez konieczności pisania kodu. Po powrocie zapytania zostanie udostępnione przykładowe polecenie CURL, aby zademonstrować wymagane nagłówki HTTP i format treści.

Zatrzymywanie kontenera

Aby zamknąć kontener, w środowisku wiersza polecenia, w którym jest uruchomiony kontener, wybierz klawisze Ctrl+C.

Uruchamianie wielu kontenerów na tym samym hoście

Jeśli zamierzasz uruchomić wiele kontenerów z uwidocznionych portów, upewnij się, że każdy kontener ma inny uwidoczniony port. Na przykład uruchom pierwszy kontener na porcie 5000 i drugi kontener na porcie 5001.

Możesz mieć ten kontener i inny kontener usługi Azure AI uruchomiony razem na hoście. Można również mieć wiele kontenerów tego samego kontenera usługi Azure AI, na którym działa.

Adresy URL hosta

Uwaga

Jeśli używasz wielu kontenerów, użyj unikatowego numeru portu.

Protokół Adres URL hosta Kontenery
WS ws://localhost:5000 Zamiana mowy na tekst

Zamiana mowy niestandardowej na tekst
HTTP http://localhost:5000 Tekst neuronowy na mowę

Identyfikacja języka mowy

Aby uzyskać więcej informacji na temat używania protokołów WSS i HTTPS, zobacz Zabezpieczenia kontenerów w dokumentacji usług Azure AI.

Rozwiązywanie problemów

Po uruchomieniu lub uruchomieniu kontenera mogą wystąpić problemy. Użyj wyjściowego punktu instalacji i włącz rejestrowanie. Dzięki temu kontener może generować pliki dziennika, które są przydatne podczas rozwiązywania problemów.

Napiwek

Aby uzyskać więcej informacji na temat rozwiązywania problemów i wskazówek, zobacz Często zadawane pytania dotyczące kontenerów usługi Azure AI w dokumentacji usług Azure AI.

Ustawienia rejestrowania

Kontenery mowy są wyposażone w obsługę rejestrowania ASP.NET Core. Oto przykład uruchamiania domyślnego neural-text-to-speech container rejestrowania w konsoli:

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} \
Logging:Console:LogLevel:Default=Information

Aby uzyskać więcej informacji na temat rejestrowania, zobacz Konfigurowanie kontenerów mowy i rekordów użycia w dokumentacji usług Azure AI.

Kontener diagnostyki firmy Microsoft

Jeśli masz problem z uruchomieniem kontenera usługi Azure AI, możesz spróbować użyć kontenera diagnostyki firmy Microsoft. Ten kontener służy do diagnozowania typowych błędów w środowisku wdrażania, które mogą uniemożliwić działanie kontenerów usługi Azure AI zgodnie z oczekiwaniami.

Aby uzyskać kontener, użyj następującego docker pull polecenia:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Następnie uruchom kontener. Zastąp {ENDPOINT_URI} ciąg swoim punktem końcowym i zastąp {API_KEY} ciąg kluczem do zasobu:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Kontener testuje łączność sieciową z punktem końcowym rozliczeń.

Uruchamianie odłączonych kontenerów

Aby uruchomić odłączone kontenery (bez połączenia z Internetem), musisz przesłać ten formularz żądania i poczekać na zatwierdzenie. Aby uzyskać więcej informacji na temat stosowania i kupowania planu zobowiązania w celu używania kontenerów w środowiskach bez połączenia, zobacz Używanie kontenerów w środowiskach bez połączenia w dokumentacji usług Azure AI.

Następne kroki