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 Nycklar i Azure-portalen 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å översiktssidan för Azure-portalen 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:

Behållare 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:

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örAdvanced 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äran-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