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:
- Azure Kubernetes Service.
- Azure Container Instances.
- Klaster Kubernetes wdrożony w usłudze Azure Stack. Aby uzyskać więcej informacji, zobacz Wdrażanie rozwiązania Kubernetes w usłudze Azure Stack.
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.
Adres URL żądania | 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 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
- Przejrzyj artykuł Configure containers for configuration settings (Konfigurowanie kontenerów dla ustawień konfiguracji).
- Dowiedz się, jak używać kontenerów usługi Mowa z platformami Kubernetes i Helm.
- Wdrażanie i uruchamianie kontenerów w usłudze Azure Container Instance
- Użyj większej liczby kontenerów usługi Azure AI.