Condividi tramite


Contenitori di identificazione della lingua con Docker

Il contenitore di identificazione della lingua di Voce rileva la lingua parlata nei file audio. È possibile ottenere registrazioni audio in tempo reale o batch con risultati intermedi. Questo articolo illustra come scaricare, installare ed eseguire un contenitore di identificazione della lingua.

Nota

Il contenitore di identificazione della lingua di Voce è disponibile in anteprima pubblica. I contenitori in anteprima sono ancora in fase di sviluppo e non soddisfano i requisiti di stabilità e supporto di Microsoft.

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.

Suggerimento

Per ottenere i risultati più utili, usare il contenitore di identificazione della lingua di Voce con i contenitori di riconoscimento vocale oppure riconoscimento vocale personalizzato.

Immagini del contenitore

L'immagine del contenitore di identificazione della lingua di Voce per tutte le versioni e le impostazioni locali supportate è disponibile in Registro Container di Microsoft. Si trova all'interno del repository azure-cognitive-services/speechservices/ ed è chiamato language-detection.

Screenshot della finestra di dialogo dei connettori di ricerca e dei trigger.

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

Versione Percorso
Più recente mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.16.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.16.0-amd64-preview

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

<major>.<minor>.<patch>-<platform>-<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/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.13.0-amd64-preview",
    "1.14.0-amd64-preview",
    "1.15.0-amd64-preview",
    "1.16.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    "1.6.1-amd64-preview",
    "1.7.0-amd64-preview",
    "1.8.0-amd64-preview",
    "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/language-detection:latest

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 la misurazione e la 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 identificazione della lingua di Voce, configurare la porta, la memoria e la CPU in base ai requisiti e raccomandazioni del contenitore di identificazione della lingua.

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:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Questo comando:

  • Esegue un contenitore di identificazione della lingua di Voce dall'immagine del contenitore.
  • Alloca 1 core della CPU e 1 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.

Eseguire con il contenitore di riconoscimento vocale

Se si vuole eseguire il contenitore di identificazione della lingua con il contenitore di riconoscimento vocale, è possibile usare questa immagine docker. Dopo l'avvio di entrambi i contenitori, usare questo comando docker run per eseguire speech-to-text-with-languagedetection-client:

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

L'aumento del numero di chiamate simultanee può influire sull'affidabilità e la latenza. Per l'identificazione della lingua, è consigliabile usare un massimo di quattro chiamate simultanee usando 1 CPU con 1 GB di memoria. Per gli host con 2 CPU e 2 GB di memoria, è consigliabile un massimo di sei chiamate simultanee.

Usare il contenitore

I contenitori voce forniscono API endpoint di query basate su websocket a cui si accede tramite Speech SDK e interfaccia della riga di comando di Voce. Per impostazione predefinita, l'SDK 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("http://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("http://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("http://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("http://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("http://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:"http://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: "http://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="http://localhost:5000")

Quando si usa l'interfaccia della riga di comando di Voce in un contenitore, includere l'opzione --host http://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 l'identificazione della lingua usando l'autenticazione host anziché la chiave e l'area. Quando si esegue l'ID della lingua in un contenitore, usare l'oggetto SourceLanguageRecognizer anziché SpeechRecognizer o TranslationRecognizer.

Passaggi successivi