Installera och köra Speech-containrar med Docker
Med hjälp av containrar kan du använda en delmängd av Speech-tjänstens funktioner i din egen miljö. I den här artikeln får du lära dig hur du laddar ned, installerar och kör en Speech-container.
Kommentar
Pris- och åtagandenivåer för frånkopplade containrar varierar från standardcontainrar. Mer information finns i Priser för Speech-tjänsten.
Förutsättningar
Du måste uppfylla följande krav innan du använder Speech-tjänstcontainrar. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar. Du måste:
- Docker installerat på en värddator. Docker måste konfigureras så att containrarna kan ansluta till och skicka faktureringsdata till Azure.
- I Windows måste Docker också konfigureras för att stödja Linux-containrar.
- Du bör ha en grundläggande förståelse för Docker-begrepp.
- En Speech-tjänstresurs med den kostnadsfria prisnivån (F0) eller standard (S).
Faktureringsargument
Talcontainrar är inte licensierade att köras utan att vara anslutna till Azure för mätning. Du måste konfigurera containern så att den alltid kommunicerar faktureringsinformation med mätningstjänsten.
Tre primära parametrar för alla Azure AI-containrar krävs. Licensvillkoren för Programvara från Microsoft måste finnas med värdet accept. En slutpunkts-URI och API-nyckel behövs också.
Frågor till containern faktureras på prisnivån för den Azure-resurs som används för parametern ApiKey
.
Kommandot docker run
startar containern när alla tre av följande alternativ har giltiga värden:
Alternativ | Description |
---|---|
ApiKey |
API-nyckeln för talresursen som används för att spåra faktureringsinformation. Värdet ApiKey används för att starta containern och är tillgängligt på sidan Azure Portal nycklar för motsvarande Speech-resurs. Gå till sidan Nycklar och välj ikonen Kopiera till Urklipp. |
Billing |
Slutpunkten för speech-resursen som används för att spåra faktureringsinformation. Slutpunkten är tillgänglig på sidan Azure Portal Översikt för motsvarande Speech-resurs. Gå till sidan Översikt , hovra över slutpunkten och ikonen Kopiera till Urklipp visas. Kopiera och använd slutpunkten där det behövs. |
Eula |
Anger att du har godkänt licensen för containern. Värdet för det här alternativet måste vara inställt på att acceptera. |
Viktigt!
Dessa prenumerationsnycklar används för att komma åt ditt Azure AI-tjänst-API. Dela inte dina nycklar. Lagra dem på ett säkert sätt. Använd till exempel Azure Key Vault. Vi rekommenderar också att du återskapar dessa nycklar regelbundet. Endast en nyckel krävs för att göra ett API-anrop. När du återskapar den första nyckeln kan du använda den andra nyckeln för fortsatt åtkomst till tjänsten.
Containern behöver faktureringsargumentvärdena för att köras. Med de här värdena kan containern ansluta till faktureringsslutpunkten. Containern rapporterar användning var 10:e till 15:e minut. Om containern inte ansluter till Azure inom den tillåtna tidsperioden fortsätter containern att köras men hanterar inte frågor förrän faktureringsslutpunkten har återställts. Anslutningen görs 10 gånger med samma tidsintervall på 10 till 15 minuter. Om den inte kan ansluta till faktureringsslutpunkten inom de 10 försöken slutar containern att hantera begäranden. Ett exempel på den information som skickas till Microsoft för fakturering finns i vanliga frågor och svar om Azure AI-container i dokumentationen om Azure AI-tjänster.
Mer information om de här alternativen finns i Konfigurera containrar.
Krav och rekommendationer för containrar
I följande tabell beskrivs den minsta och rekommenderade allokeringen av resurser för varje Speech-container:
Container | Lägsta | Rekommenderas | Talmodell |
---|---|---|---|
Tal till text | 4 kärnor, 4 GB minne | 8 kärnor, 8 GB minne | +4 till 8 GB minne |
Anpassat tal till text | 4 kärnor, 4 GB minne | 8 kärnor, 8 GB minne | +4 till 8 GB minne |
Identifiering av talspråk | 1 kärna, 1 GB minne | 1 kärna, 1 GB minne | saknas |
Neural text till tal | 6 kärnor, 12 GB minne | 8 kärnor, 16 GB minne | saknas |
Varje kärna måste vara minst 2,6 gigahertz (GHz) eller snabbare.
Kärna och minne motsvarar --cpus
inställningarna och --memory
som används som en del av docker run
kommandot.
Kommentar
De minsta och rekommenderade allokeringarna baseras på Docker-gränser, inte på värddatorresurserna. Till exempel minnesmappningsdelar för tal till textcontainrar i en stor språkmodell. Vi rekommenderar att hela filen får plats i minnet. Du måste lägga till ytterligare 4 till 8 GB för att läsa in talmodellerna (se föregående tabell). Den första körningen av någon av containrar kan också ta längre tid eftersom modeller bläddras till minnet.
Krav och rekommendationer för värddatorer
Värden är en x64-baserad dator som kör Docker-containern. Det kan vara en dator lokalt eller en Docker-värdtjänst i Azure, till exempel:
- Azure Kubernetes Service.
- Azure Container Instances.
- Ett Kubernetes-kluster som distribuerats till Azure Stack. Mer information finns i Distribuera Kubernetes till Azure Stack.
Kommentar
Containrar stöder komprimerade ljudindata till Speech SDK med hjälp av GStreamer. Om du vill installera GStreamer i en container följer du Linux-instruktionerna för GStreamer i Använda codec-komprimerade ljudindata med Speech SDK.
Stöd för Avancerat vektortillägg
Värden är den dator som kör Docker-containern. Värden måste ha stöd för Advanced Vector Extensions (AVX2). Du kan söka efter STÖD för AVX2 på Linux-värdar med följande kommando:
grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected
Varning
Värddatorn krävs för att stödja AVX2. Containern fungerar inte korrekt utan stöd för AVX2.
Kör containern
Använd kommandot docker run för att köra containern. När containern körs fortsätter den att köras tills du stoppar containern.
Observera följande metodtips med docker run
kommandot :
- Radfortsättningstecken: Docker-kommandona i följande avsnitt använder snedstrecket,
\
, som ett radfortsättningstecken. Ersätt eller ta bort det här tecknet baserat på värdoperativsystemets krav. - Argumentordning: Ändra inte ordningen på argumenten om du inte är bekant med Docker-containrar.
Du kan använda kommandot docker images för att visa en lista över dina nedladdade containeravbildningar. Följande kommando visar ID, lagringsplats och tagg för varje nedladdad containeravbildning, formaterad som en tabell:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
Här är ett exempelresultat:
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Verifiera att en container körs
Det finns flera sätt att verifiera att containern körs. Leta upp den externa IP-adressen och den exponerade porten för containern i fråga och öppna din favoritwebbläsare. Använd de olika url:er för begäranden som följer för att verifiera att containern körs.
Exempelbegärande-URL:er som anges här är http://localhost:5000
, men din specifika container kan variera. Se till att förlita dig på containerns externa IP-adress och exponerade port.
Begärans-URL | Syfte |
---|---|
http://localhost:5000/ |
Containern tillhandahåller en startsida. |
http://localhost:5000/ready |
Den här URL:en begärs med GET och tillhandahåller en verifiering av att containern är redo att acceptera en fråga mot modellen. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. |
http://localhost:5000/status |
Den här URL:en begärs också med GET och kontrollerar om api-nyckeln som används för att starta containern är giltig utan att orsaka en slutpunktsfråga. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. |
http://localhost:5000/swagger |
Containern tillhandahåller en fullständig uppsättning dokumentation för slutpunkterna samt en Prova-funktion. Med den här funktionen kan du ange inställningarna i ett webbaserat HTML-formulär och göra frågan utan att behöva skriva någon kod. När frågan har returnerats tillhandahålls ett exempel på CURL-kommandot för att demonstrera de HTTP-huvuden och brödtextformat som krävs. |
Stoppa containern
Om du vill stänga av containern väljer du Ctrl+C i den kommandoradsmiljö där containern körs.
Köra flera containrar på samma värd
Om du tänker köra flera containrar med exponerade portar ska du köra varje container med en annan exponerad port. Kör till exempel den första containern på port 5000 och den andra containern på port 5001.
Du kan ha den här containern och en annan Azure AI-container som körs på VÄRDEN tillsammans. Du kan också ha flera containrar av samma Azure AI-container som körs.
Värd-URL:er
Kommentar
Använd ett unikt portnummer om du kör flera containrar.
Protokoll | Värd-URL | Containers |
---|---|---|
WS | ws://localhost:5000 |
Tal till text Anpassat tal till text |
HTTP | http://localhost:5000 |
Neural text till tal Identifiering av talspråk |
Mer information om hur du använder WSS- och HTTPS-protokoll finns i Containersäkerhet i dokumentationen om Azure AI-tjänster.
Felsökning
När du startar eller kör containern kan det uppstå problem. Använd en utdatamontering och aktivera loggning. På så sätt kan containern generera loggfiler som är användbara när du felsöker problem.
Dricks
Mer felsökningsinformation och vägledning finns i Vanliga frågor och svar om Azure AI-containrar i Dokumentationen om Azure AI-tjänster.
Loggningsinställningar
Talcontainrar har stöd för ASP.NET Core-loggning. Här är ett exempel på den neural-text-to-speech container
som startades med standardloggning till konsolen:
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
Mer information om loggning finns i Konfigurera Speech-containrar och användningsposter i Dokumentationen om Azure AI-tjänster.
Microsoft-diagnostikcontainer
Om du har problem med att köra en Azure AI-container kan du prova att använda Microsoft Diagnostics-containern. Använd den här containern för att diagnostisera vanliga fel i distributionsmiljön som kan förhindra att Azure AI-containrar fungerar som förväntat.
Använd följande docker pull
kommando för att hämta containern:
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
Kör sedan containern. Ersätt {ENDPOINT_URI}
med slutpunkten och ersätt {API_KEY}
med nyckeln till resursen:
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Containertesterna för nätverksanslutning till faktureringsslutpunkten.
Köra frånkopplade containrar
Om du vill köra frånkopplade containrar (inte anslutna till Internet) måste du skicka det här begärandeformuläret och vänta på godkännande. Mer information om hur du tillämpar och köper en åtagandeplan för att använda containrar i frånkopplade miljöer finns i Använda containrar i frånkopplade miljöer i Dokumentationen om Azure AI-tjänster.
Nästa steg
- Granska konfigurera containrar för konfigurationsinställningar.
- Lär dig hur du använder Speech Service-containrar med Kubernetes och Helm.
- Distribuera och köra containrar på Azure Container Instance
- Använd fler Azure AI-containrar.