Contenitori riconoscimento vocale con Docker

Il contenitore di riconoscimento vocale trascrive il parlato in tempo reale o le registrazioni audio in batch con risultati intermedi. Questo articolo illustra come scaricare, installare ed eseguire un contenitore di riconoscimento vocale.

Per altre informazioni sui prerequisiti, verificare che un contenitore sia in esecuzione, che esegua più contenitori nello stesso host e che esegua contenitori disconnessi, vedere Installare ed eseguire contenitori di Voce con Docker.

Immagini del contenitore

L'immagine del contenitore di riconoscimento vocale per tutte le versioni e le impostazioni locali supportate è disponibile nel syndicate Registro Container di Microsoft. Si trova all'interno del repository azure-cognitive-services/speechservices/ ed è denominata speech-to-text.

A screenshot of the search connectors and triggers dialog.

Il nome completo dell'immagine del contenitore è mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text. Aggiungere una versione specifica o accodare :latest per ottenere la versione più recente.

Versione Percorso
Più recente mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

Il tag latest esegue il pull dell'immagine più recente per le impostazioni locali en-US.
4.6.0 mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:4.6.0-amd64-mr-in

Tutti i tag, ad eccezione di latest, sono nel formato seguente e fanno distinzione tra maiuscole e minuscole:

<major>.<minor>.<patch>-<platform>-<locale>-<prerelease>

I tag sono disponibili anche in formato JSON per praticità. Il corpo include il percorso del contenitore e l'elenco di tag. I tag non vengono ordinati in base alla versione, ma "latest" viene sempre incluso alla fine dell'elenco, come illustrato in questo frammento di codice:

{
  "name": "azure-cognitive-services/speechservices/speech-to-text",
  "tags": [
    "2.10.0-amd64-ar-ae",
    "2.10.0-amd64-ar-bh",
    "2.10.0-amd64-ar-eg",
    "2.10.0-amd64-ar-iq",
    "2.10.0-amd64-ar-jo",
    <--redacted for brevity-->
    "latest"
  ]
}

Ottenere l'immagine del contenitore con docker pull

Sono necessari i prerequisiti incluso l'hardware necessario. Vedere anche l'allocazione consigliata delle risorse per ogni contenitore di Voce.

Usare il comando docker pull per scaricare un'immagine del contenitore da Registro Container di Microsoft:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text:latest

Importante

Il tag latest esegue il pull dell'immagine più recente per le impostazioni locali en-US. Per altre versioni e impostazioni locali, vedere Riconoscimento vocale alle immagini del contenitore di testo.

Eseguire il contenitore con il comando docker run

Usare il comando docker run per eseguire il contenitore.

La tabella seguente rappresenta i vari parametri docker run e le descrizioni corrispondenti:

Parametro Descrizione
{ENDPOINT_URI} L'endpoint è necessario per misurazione e fatturazione. Per altre informazioni, vedere argomenti di fatturazione.
{API_KEY} La chiave API è obbligatoria. Per altre informazioni, vedere argomenti di fatturazione.

Quando si esegue il contenitore di riconoscimento vocale, configurare la porta, la memoria e la CPU in base ai requisiti e alle raccomandazioni per il contenitore di riconoscimento vocale.

Ecco un esempio del comando docker run con valori segnaposto. È necessario specificare i valori ENDPOINT_URI e API_KEY:

docker run --rm -it -p 5000:5000 --memory 8g --cpus 4 \
mcr.microsoft.com/azure-cognitive-services/speechservices/speech-to-text \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Questo comando:

  • Esegue un contenitore speech-to-text dall'immagine del contenitore.
  • Alloca 4 core della CPU e 8 GB di memoria.
  • Espone la porta TCP 5000 e alloca un pseudo terminale TTY per il contenitore.
  • Rimuove automaticamente il contenitore dopo la chiusura. L'immagine del contenitore rimane disponibile nel computer host.

Per altre informazioni su docker run con i contenitori di Voce, vedere Installare ed eseguire contenitori di Voce con Docker.

Usare il contenitore

I contenitori di Voce forniscono API di endpoint di query basate su WebSocket a cui si accede tramite il Software Development Kit e l'interfaccia della riga di comando di Voce. Per impostazione predefinita, il Software Development Kit e l'interfaccia della riga di comando di Voce usano il servizio Voce pubblico. Per usare il contenitore, è necessario modificare il metodo di inizializzazione.

Importante

Quando si usa il servizio Voce con contenitori, assicurarsi di usare l’autenticazione host. Se si configura la chiave e l'area, le richieste verranno inviate al servizio Voce pubblico. I risultati del servizio Voce potrebbero non essere quelli previsti. Le richieste provenienti da contenitori disconnessi avranno esito negativo.

Anziché usare questa configurazione di inizializzazione cloud di Azure:

var config = SpeechConfig.FromSubscription(...);

Usare questa configurazione con l’host del contenitore:

var config = SpeechConfig.FromHost(
    new Uri("ws://localhost:5000"));

Anziché usare questa configurazione di inizializzazione cloud di Azure:

auto speechConfig = SpeechConfig::FromSubscription(...);

Usare questa configurazione con l’host del contenitore:

auto speechConfig = SpeechConfig::FromHost("ws://localhost:5000");

Anziché usare questa configurazione di inizializzazione cloud di Azure:

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

Usare questa configurazione con l’host del contenitore:

speechConfig, err := speech.NewSpeechConfigFromHost("ws://localhost:5000")

Anziché usare questa configurazione di inizializzazione cloud di Azure:

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

Usare questa configurazione con l’host del contenitore:

SpeechConfig speechConfig = SpeechConfig.fromHost("ws://localhost:5000");

Anziché usare questa configurazione di inizializzazione cloud di Azure:

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

Usare questa configurazione con l’host del contenitore:

const speechConfig = sdk.SpeechConfig.fromHost("ws://localhost:5000");

Anziché usare questa configurazione di inizializzazione cloud di Azure:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

Usare questa configurazione con l’host del contenitore:

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"ws://localhost:5000"];

Anziché usare questa configurazione di inizializzazione cloud di Azure:

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

Usare questa configurazione con l’host del contenitore:

let speechConfig = SPXSpeechConfiguration(host: "ws://localhost:5000");

Anziché usare questa configurazione di inizializzazione cloud di Azure:

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

Usare questa configurazione con l’endpoint del contenitore:

speech_config = speechsdk.SpeechConfig(
    host="ws://localhost:5000")

Quando si usa l'interfaccia della riga di comando di Voce in un contenitore, includere l'opzione --host wss://localhost:5000/. È inoltre necessario specificare --key none per assicurarsi che l'interfaccia della riga di comando non tenti di usare una chiave di Voce per l'autenticazione. Per informazioni su come configurare l'interfaccia della riga di comando di Voce, vedere Introduzione all'interfaccia della riga di comando di Voce di Azure AI.

Provare la guida di avvio rapido al riconoscimento vocale usando l'autenticazione host anziché la chiave e l'area.

Passaggi successivi