Installare ed eseguire contenitori Voce con Docker
Usando i contenitori, è possibile usare un subset delle funzionalità del servizio Voce nel proprio ambiente. In questo articolo si apprende come scaricare, installare ed eseguire un contenitore del servizio Voce.
Nota
I prezzi e i livelli di impegno dei contenitori disconnessi variano a seconda dei contenitori standard. Per altre informazioni, vedere Prezzi del servizio Voce.
Prerequisiti
Prima di usare i contenitori del servizio Voce, è necessario soddisfare i prerequisiti seguenti. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare. È necessario:
- Docker installato in un computer host. Docker deve essere configurato per consentire ai contenitori di connettersi ai dati di fatturazione e inviarli ad Azure.
- In Windows, è anche necessario configurare Docker per supportare i contenitori Linux.
- È necessaria una conoscenza di base dei concetti di Docker.
- Una risorsa del servizio Voce con il piano tariffario gratuito (F0) o standard (S).
Argomenti di fatturazione
I contenitori voce non sono concessi in licenza per l'esecuzione senza una connessione ad Azure per la misurazione. È necessario configurare il contenitore per comunicare sempre le informazioni di fatturazione con il servizio di misurazione.
Sono necessari tre parametri principali per tutti i contenitori di Intelligenza artificiale di Azure. Le condizioni di licenza per il software Microsoft devono essere presenti con un valore di accettazione. Sono necessari anche un URI dell'endpoint e una chiave API.
Le query sul contenitore vengono fatturate secondo il piano tariffario della risorsa di Azure usata per il parametro ApiKey
.
Il comando docker run
avvia il contenitore quando vengono forniti valori validi per tutte e tre le opzioni seguenti:
Opzione | Descrizione |
---|---|
ApiKey |
Chiave API della risorsa Voce usata per tenere traccia delle informazioni di fatturazione. Il valore ApiKey viene usato per avviare il contenitore ed è disponibile nella pagina Chiavi del portale di Azure per la risorsa Voce corrispondente. Accedere alla pagina Chiavi e selezionare l'icona Copia negli Appunti . |
Billing |
Endpoint della risorsa Voce usato per tenere traccia delle informazioni di fatturazione. L'endpoint è disponibile nella pagina Panoramica del portale di Azure della risorsa Voce corrispondente. Accedere alla pagina Panoramica e passare il puntatore sull'endpoint. Apparirà un'icona Copia negli Appunti . Copiare e usare l'endpoint se necessario. |
Eula |
Indica che è la licenza per il contenitore è stata accettata. Il valore di questa opzione deve essere impostato su accept. |
Importante
Queste chiavi di sottoscrizione vengono usate per accedere all'API Servizi di Azure AI. Non condividere le chiavi. Archiviarle in modo sicuro. Usare, ad esempio, Azure Key Vault. È anche consigliabile rigenerare queste chiavi regolarmente. Per effettuare una chiamata API è necessaria una sola chiave. Quando si rigenera la prima chiave, è possibile usare la seconda chiave per continuare ad accedere al servizio.
Per eseguire il contenitore, sono necessari i valori dell'argomento di fatturazione. Questi valori consentono al contenitore di connettersi all'endpoint di fatturazione. Il contenitore segnala l'utilizzo ogni 10-15 minuti. Se il contenitore non si connette ad Azure entro la finestra temporale consentita, continuerà a essere eseguito ma non fornirà query finché l'endpoint di fatturazione non verrà ripristinato. Il tentativo di connessione viene effettuato 10 volte nello stesso intervallo di tempo di 10-15 minuti. Se non è possibile stabilire la connessione con l'endpoint di fatturazione entro 10 tentativi, il contenitore interromperà la gestione delle richieste. Per un esempio delle informazioni inviate a Microsoft per la fatturazione, vedere domande frequenti sul contenitore di Intelligenza artificiale di Azure nella documentazione dei servizi di intelligenza artificiale di Azure.
Per altre informazioni su queste opzioni, vedere Configurare i contenitori.
Indicazioni e requisiti per i contenitori
La tabella seguente descrive l'allocazione minima e consigliata di risorse per ogni contenitore Voce:
Contenitore | Requisiti minimi | Requisiti consigliati | Modello conversione voce/testo |
---|---|---|---|
Riconoscimento vocale | 4 core, 4 GB di memoria | 8 core, 8 GB di memoria | Da oltre 4 a 8 GB di memoria |
Riconoscimento vocale personalizzato | 4 core, 4 GB di memoria | 8 core, 8 GB di memoria | Da oltre 4 a 8 GB di memoria |
Identificazione della lingua per il servizio Voce | 1 core, 1 GB di memoria | 1 core, 1 GB di memoria | n/d |
Sintesi vocale neurale | 6 core, 12 GB di memoria | 8 core, 16 GB di memoria | n/d |
Ogni core deve essere di almeno 2,6 gigahertz (GHz) o superiore.
Core e memoria corrispondono alle impostazioni --cpus
e --memory
che vengono usate come parte del comando docker run
.
Nota
Le allocazioni minime e consigliate sono basate sui limiti di Docker, non sulle risorse del computer host. Ad esempio, nei contenitori di riconoscimento vocale vengono memorizzate parti di un modello linguistico di grandi dimensioni. È consigliabile che l'intero file sia contenuto nella memoria. È necessario aggiungere altri 4-8 GB per caricare i modelli conversione voce/testo (vedere la tabella precedente). Inoltre, la prima esecuzione di uno dei contenitori potrebbe richiedere più tempo perché i modelli vengono inseriti in memoria.
Requisiti e consigli sul computer host
L'host è un computer con architettura x64 che esegue il contenitore Docker. Può essere un computer dell'ambiente locale o un servizio di hosting Docker in Azure, tra cui:
- Servizio Azure Kubernetes.
- Istanze di Azure Container.
- Cluster Kubernetes distribuito in Azure Stack. Per altre informazioni, vedere Deploy Kubernetes to Azure Stack (Distribuire Kubernetes in Azure Stack).
Nota
I contenitori supportano l'input audio compresso per Speech SDK con GStreamer. Per installare GStreamer in un contenitore, seguire le istruzioni di Linux per GStreamer relative a come usare l'input audio compresso con codec con Speech SDK.
Supporto per Advanced Vector Extension
L'host è il computer che esegue il contenitore Docker. L'host deve supportare Estensioni Vettore Avanzate (AVX2). È possibile verificare se AVX2 è supportato negli host Linux con il comando seguente:
grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected
Avviso
Il computer host deve supportare AVX2. Il contenitore non funzionerà correttamente senza il supporto per AVX2.
Eseguire il contenitore
Usare il comando docker run per eseguire il contenitore. Quando è in esecuzione, il contenitore continua l'esecuzione finché non viene arrestato.
Prendere nota delle procedure consigliate seguenti relative al comando docker run
:
- Carattere di continuazione della riga: i comandi Docker nelle sezioni seguenti usano la barra rovesciata,
\
, come carattere di continuazione della riga. Sostituire o rimuovere questo carattere in base ai requisiti del sistema operativo host. - Ordine degli argomenti: Non cambiare l'ordine degli argomenti se non si ha dimestichezza con i contenitori Docker.
È possibile usare il comando docker images per visualizzare l'elenco delle immagini dei contenitori scaricate. Il comando seguente consente di visualizzare l'ID, il repository e il tag di ogni immagine del contenitore scaricata in formato tabella:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
Ecco un risultato di esempio:
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Verificare che il contenitore sia in esecuzione
Per verificare se il contenitore è in esecuzione, sono disponibili diverse opzioni. Individuare l'indirizzo IP esterno e la porta esposta del contenitore in questione, quindi aprire il Web browser di scelta. Usare i vari URL di richiesta seguenti per verificare che il contenitore sia in esecuzione.
Gli URL di richiesta di esempio elencati di seguito sono http://localhost:5000
, ma il proprio contenitore specifico potrebbe variare. Assicurarsi di usare l'indirizzo IP esterno e la porta esposta del contenitore.
Richiesta URL | Scopo |
---|---|
http://localhost:5000/ |
Il contenitore fornisce un home page. |
http://localhost:5000/ready |
Questo URL, richiesto con un'operazione GET, verifica che il contenitore sia pronto per accettare una query sul modello. Questa richiesta può essere usata per i probe di attività e di idoneità di Kubernetes. |
http://localhost:5000/status |
Questo URL, anch'esso richiesto con un'operazione GET, verifica se la chiave API usata per avviare il contenitore sia valida senza che sia necessaria una query sull'endpoint. Questa richiesta può essere usata per i probe di attività e di idoneità di Kubernetes. |
http://localhost:5000/swagger |
Il contenitore fornisce un set completo di documentazione per gli endpoint e una funzionalità Prova. Con questa funzionalità, è possibile immettere le impostazioni in un modulo HTML basato sul Web ed eseguire la query senza scrivere codice. Dopo che la query restituisce il risultato, viene fornito un comando CURL di esempio per illustrare il formato richiesto per il corpo e le intestazioni HTTP. |
Arrestare il contenitore
Per arrestare il contenitore, premere CTRL+C nell'ambiente della riga di comando in cui è in esecuzione il contenitore.
Eseguire più contenitori nello stesso host
Se si intende eseguire più contenitori con porte esposte, assicurarsi di eseguire ogni contenitore con una porta esposta diversa. Eseguire ad esempio il primo contenitore sulla porta 5000 e il secondo sulla porta 5001.
È possibile avere questo contenitore e un contenitore di Azure per intelligenza artificiale diverso in esecuzione insieme nell'host. È anche possibile avere più contenitori di Azure per intelligenza artificiale in esecuzione.
URL host
Nota
Usare un numero di porta univoco se si eseguono più contenitori.
Protocollo | URL dell'host | Contenitori |
---|---|---|
WS | ws://localhost:5000 |
Riconoscimento vocale Riconoscimento vocale personalizzato |
HTTP | http://localhost:5000 |
Sintesi vocale neurale Identificazione della lingua per la sintesi vocale |
Per altre informazioni sull'uso dei protocolli WSS e HTTPS, vedere Sicurezza dei contenitori nella documentazione dei servizi di intelligenza artificiale di Azure.
Risoluzione dei problemi
Quando si avvia o si esegue il contenitore, è possibile che si verifichino dei problemi. Usare un montaggio di output e abilitare la registrazione. In questo modo il contenitore genererà file di log utili per la risoluzione dei problemi.
Suggerimento
Per altre informazioni sulla risoluzione dei problemi e indicazioni, vedere Domande frequenti sui contenitori di Intelligenza artificiale di Azure nella documentazione dei servizi di intelligenza artificiale di Azure.
Impostazioni di registrazione
I contenitori Voce includono il supporto per la registrazione di ASP.NET Core. Di seguito è riportato un esempio di neural-text-to-speech container
avviata con la registrazione predefinita nella 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
Per altre informazioni sulla registrazione, vedere Configurare i contenitori voce e record di utilizzo nella documentazione dei servizi di intelligenza artificiale di Azure.
Contenitore di diagnostica Microsoft
Se si verificano problemi durante l'esecuzione di un contenitore di Azure AI, è possibile provare a usare il contenitore per la diagnostica di Microsoft. Usare questo contenitore per diagnosticare gli errori comuni nell'ambiente di distribuzione che potrebbero impedire il funzionamento previsto dei contenitori di Azure per intelligenza artificiale.
Per ottenere il contenitore, usare il comando docker pull
seguente:
docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic
Quindi, eseguire il contenitore. Sostituire {ENDPOINT_URI}
con l'endpoint e {API_KEY}
con la chiave per la risorsa:
docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Il contenitore esegue il test della connettività di rete per l’endpoint di fatturazione.
Eseguire contenitori disconnessi
Per eseguire contenitori disconnessi (non connessi a Internet), è necessario inviare il modulo di richiesta e attendere l'approvazione. Per altre informazioni sull'applicazione e l'acquisto di un piano di impegno per l'uso di contenitori in ambienti disconnessi, vedere Usare i contenitori in ambienti disconnessi nella documentazione sui Servizi di Azure AI.
Passaggi successivi
- Vedere Configurare i contenitori del servizio Voce per informazioni sulle impostazioni di configurazione.
- Leggere gli articoli su come usare i contenitori del servizio Voce con Kubernetes e Helm.
- Distribuire ed eseguire un contenitore in Istanze di contenitore di Azure
- Usare altri contenitori Azure per intelligenza artificiale.