Speech-containers installeren en uitvoeren met Docker

Met behulp van containers kunt u een subset van de functies van de Speech-service in uw eigen omgeving gebruiken. In dit artikel leert u hoe u een Speech-container downloadt, installeert en uitvoert.

Notitie

De prijs- en toezeggingslagen voor niet-verbonden containers verschillen van standaardcontainers. Zie prijzen voor de Speech-service voor meer informatie.

Vereisten

U moet voldoen aan de volgende vereisten voordat u Speech Service-containers gebruikt. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint. U hebt het volgende nodig:

  • Docker geïnstalleerd op een hostcomputer. Docker moet zo worden geconfigureerd dat de containers verbinding kunnen maken met en factureringsgegevens naar Azure kunnen verzenden.
    • In Windows moet Docker ook worden geconfigureerd ter ondersteuning van Linux-containers.
    • U moet basiskennis hebben van Docker-concepten.
  • Een Speech-serviceresource met de gratis prijscategorie (F0) of Standard (S).

Factureringsargumenten

Spraakcontainers hebben geen licentie om te worden uitgevoerd zonder verbinding te maken met Azure voor meting. U moet uw container configureren om factureringsgegevens altijd met de meterservice te communiceren.

Er zijn drie primaire parameters vereist voor alle Azure AI-containers. De licentievoorwaarden voor Microsoft-software moeten aanwezig zijn met een waarde van accepteren. Er is ook een eindpunt-URI en API-sleutel nodig.

Query's naar de container worden gefactureerd in de prijscategorie van de Azure-resource die wordt gebruikt voor de ApiKey parameter.

Met docker run de opdracht wordt de container gestart wanneer alle drie de volgende opties geldige waarden bevatten:

Optie Omschrijving
ApiKey De API-sleutel van de Speech-resource die wordt gebruikt om factureringsgegevens bij te houden.
De ApiKey waarde wordt gebruikt om de container te starten en is beschikbaar op de pagina Sleutels van de Azure-portal van de bijbehorende Spraakresource. Ga naar de pagina Sleutels en selecteer het pictogram Kopiëren naar klembord .
Billing Het eindpunt van de Spraak-resource die wordt gebruikt om factureringsgegevens bij te houden.
Het eindpunt is beschikbaar op de overzichtspagina van Azure Portal van de bijbehorende Spraakresource. Ga naar de pagina Overzicht, plaats de muisaanwijzer op het eindpunt en er wordt een pictogram Kopiëren naar klembord weergegeven. Kopieer en gebruik waar nodig het eindpunt.
Eula Geeft aan dat u de licentie voor de container hebt geaccepteerd.
De waarde van deze optie moet worden ingesteld op accepteren.

Belangrijk

Deze abonnementssleutels worden gebruikt voor toegang tot uw Azure AI-services-API. Deel je sleutels niet. Bewaar ze veilig. Gebruik bijvoorbeeld Azure Key Vault. We raden u ook aan deze sleutels regelmatig opnieuw te genereren. Er is slechts één sleutel nodig om een API-aanroep te maken. Wanneer u de eerste sleutel opnieuw genereert, kunt u de tweede sleutel gebruiken voor continue toegang tot de service.

De container moet de waarden voor factureringsargumenten uitvoeren. Met deze waarden kan de container verbinding maken met het factureringseindpunt. De container rapporteert ongeveer om de 10 tot 15 minuten het gebruik. Als de container niet binnen het toegestane tijdvenster verbinding maakt met Azure, blijft de container actief, maar voert deze geen query's uit totdat het factureringseindpunt is hersteld. De verbinding wordt 10 keer geprobeerd met hetzelfde tijdsinterval van 10 tot 15 minuten. Als er geen verbinding kan worden gemaakt met het factureringseindpunt binnen de 10 pogingen, stopt de container met het verwerken van aanvragen. Zie de veelgestelde vragen over Azure AI-containers in de documentatie voor Azure AI-services voor een voorbeeld van de informatie die naar Microsoft is verzonden voor facturering.

Zie Containers configureren voor meer informatie over deze opties.

Containervereisten en aanbevelingen

In de volgende tabel worden de minimale en aanbevolen toewijzing van resources voor elke Speech-container beschreven:

Container Minimaal Aanbevolen Spraakmodel
Spraak-naar-tekst 4 kerngeheugen, 4 GB geheugen 8 kerngeheugen, 8 GB geheugen +4 tot 8 GB geheugen
Aangepaste spraak naar tekst 4 kerngeheugen, 4 GB geheugen 8 kerngeheugen, 8 GB geheugen +4 tot 8 GB geheugen
Spraaktaalidentificatie 1 kerngeheugen, 1 GB geheugen 1 kerngeheugen, 1 GB geheugen N.v.t.
Neurale tekst-naar-spraak 6 kerngeheugen, 12 GB geheugen 8 kerngeheugen, 16 GB geheugen N.v.t.

Elke kern moet ten minste 2,6 gigahertz (GHz) of sneller zijn.

Kern en geheugen komen overeen met de --cpus en --memory instellingen, die worden gebruikt als onderdeel van de docker run opdracht.

Notitie

De minimale en aanbevolen toewijzingen zijn gebaseerd op Docker-limieten, niet op de hostcomputerresources. Spraak-naar-tekstcontainers geheugentoewijzingsgedeelten van een groot taalmodel. Het is raadzaam dat het hele bestand in het geheugen past. U moet nog eens 4 tot 8 GB toevoegen om de spraakmodellen te laden (zie de vorige tabel). De eerste uitvoering van een van beide containers kan ook langer duren omdat modellen in het geheugen worden gepaginad.

Vereisten en aanbevelingen voor hostcomputers

De host is een x64-computer waarop de Docker-container wordt uitgevoerd. Het kan een computer op uw locatie of een Docker-hostingservice in Azure zijn, zoals:

Notitie

Containers ondersteunen gecomprimeerde audio-invoer voor de Speech SDK met behulp van GStreamer. Als u GStreamer in een container wilt installeren, volgt u de Linux-instructies voor GStreamer in Codec gecomprimeerde audio-invoer gebruiken met de Speech SDK.

Ondersteuning voor Advanced Vector Extension

De host is de computer waarop de Docker-container wordt uitgevoerd. De host moet Ondersteuning bieden voorAdvanced Vector Extensions (AVX2). U kunt controleren op AVX2-ondersteuning op Linux-hosts met de volgende opdracht:

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

Waarschuwing

De hostcomputer is vereist voor de ondersteuning van AVX2. De container werkt niet correct zonder AVX2-ondersteuning.

De container uitvoeren

Gebruik de opdracht docker run om de container uit te voeren. Zodra de container wordt uitgevoerd, blijft de container actief totdat u de container stopt.

Noteer de volgende aanbevolen procedures met de docker run opdracht:

  • Regelvervolgteken: De Docker-opdrachten in de volgende secties gebruiken de back-slash, \als een regelvervolgteken. Vervang of verwijder dit teken op basis van de vereisten van uw hostbesturingssysteem.
  • Argumentvolgorde: Wijzig de volgorde van de argumenten niet, tenzij u bekend bent met Docker-containers.

U kunt de opdracht docker-installatiekopieën gebruiken om uw gedownloade containerinstallatiekopieën weer te geven. De volgende opdracht bevat de id, opslagplaats en tag van elke gedownloade containerinstallatiekopieën, opgemaakt als een tabel:

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

Hier volgt een voorbeeldresultaat:

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

Controleren of een container wordt uitgevoerd

Er zijn verschillende manieren om te controleren of de container wordt uitgevoerd. Zoek het externe IP-adres en de weergegeven poort van de betreffende container en open uw favoriete webbrowser. Gebruik de verschillende aanvraag-URL's die volgen om te controleren of de container wordt uitgevoerd.

De hier vermelde voorbeeldaanvraag-URL's zijn http://localhost:5000, maar uw specifieke container kan variëren. Zorg ervoor dat u vertrouwt op het externe IP-adres van uw container en de weergegeven poort.

Aanvraag-URL Doel
http://localhost:5000/ De container bevat een startpagina.
http://localhost:5000/ready Aangevraagd met GET biedt deze URL een verificatie dat de container gereed is voor het accepteren van een query voor het model. Deze aanvraag kan worden gebruikt voor Kubernetes-liveness - en gereedheidstests.
http://localhost:5000/status Deze URL wordt ook aangevraagd met GET en controleert of de API-sleutel die wordt gebruikt om de container te starten, geldig is zonder een eindpuntquery te veroorzaken. Deze aanvraag kan worden gebruikt voor Kubernetes-liveness - en gereedheidstests.
http://localhost:5000/swagger De container bevat een volledige set met documentatie voor de eindpunten en een functie Uitproberen. Met deze functie kunt u uw instellingen invoeren in een HTML-webformulier en de query maken zonder dat u code hoeft te schrijven. Nadat de query is geretourneerd, wordt er een voorbeeld van een CURL-opdracht gegeven om de HTTP-headers en de hoofdtekstindeling te demonstreren die vereist is.

De container stoppen

Als u de container wilt afsluiten, selecteert u Ctrl+C in de opdrachtregelomgeving waarin de container wordt uitgevoerd.

Meerdere containers op dezelfde host uitvoeren

Als u van plan bent om meerdere containers met blootgestelde poorten uit te voeren, moet u ervoor zorgen dat u elke container uitvoert met een andere weergegeven poort. Voer bijvoorbeeld de eerste container uit op poort 5000 en de tweede container op poort 5001.

U kunt deze container en een andere Azure AI-container laten uitvoeren op de HOST. U kunt ook meerdere containers van dezelfde Azure AI-container laten uitvoeren.

Host-URL's

Notitie

Gebruik een uniek poortnummer als u meerdere containers uitvoert.

Protocol Host-URL Containers
WS ws://localhost:5000 Spraak naar tekst

Aangepaste spraak naar tekst
HTTP http://localhost:5000 Neurale tekst naar spraak

Spraaktaalidentificatie

Zie containerbeveiliging in de documentatie van Azure AI-services voor meer informatie over het gebruik van WSS- en HTTPS-protocollen.

Problemen oplossen

Wanneer u de container start of uitvoert, kunnen er problemen optreden. Gebruik een uitvoerkoppeling en schakel logboekregistratie in. Hierdoor kan de container logboekbestanden genereren die nuttig zijn bij het oplossen van problemen.

Tip

Zie veelgestelde vragen over Azure AI-containers (FAQ) in de documentatie voor Azure AI-services voor meer informatie en richtlijnen voor probleemoplossing.

Instellingen voor logboekregistratie

Spraakcontainers worden geleverd met ondersteuning voor ASP.NET Core-logboekregistratie. Hier volgt een voorbeeld van het neural-text-to-speech container starten met standaardlogboekregistratie naar de console:

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

Zie Speech-containers en gebruiksrecords configureren in de documentatie voor Azure AI-services voor meer informatie over logboekregistratie.

Microsoft Diagnostics-container

Als u problemen ondervindt bij het uitvoeren van een Azure AI-container, kunt u proberen de diagnostische container van Microsoft te gebruiken. Gebruik deze container om veelvoorkomende fouten in uw implementatieomgeving te diagnosticeren waardoor Azure AI-containers mogelijk niet werken zoals verwacht.

Gebruik de volgende docker pull opdracht om de container op te halen:

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

Voer vervolgens de container uit. Vervang {ENDPOINT_URI} door uw eindpunt en vervang {API_KEY} uw sleutel door uw resource:

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

De container test op netwerkconnectiviteit met het factureringseindpunt.

Niet-verbonden containers uitvoeren

Als u niet-verbonden containers wilt uitvoeren (niet verbonden met internet), moet u dit aanvraagformulier indienen en wachten op goedkeuring. Zie Containers gebruiken in niet-verbonden omgevingen in de documentatie van Azure AI-services voor meer informatie over het toepassen en aanschaffen van een toezeggingsplan voor het gebruik van containers in niet-verbonden omgevingen .

Volgende stappen