Contêineres de identificação de idioma com o Docker

O contêiner de identificação de idioma de Fala detecta o idioma falado em arquivos de áudio. Você pode obter gravações de fala ou de áudio em tempo real ou em lote com resultados intermediários. Neste artigo, você aprenderá a baixar, instalar e executar um contêiner de identificação de idioma.

Observação

O contêiner de identificação de idioma de Fala está disponível ao público em versão preliminar. Os contêineres em versão preliminar ainda estão em desenvolvimento e não atendem aos requisitos de estabilidade e suporte da Microsoft.

Para obter mais informações sobre os pré-requisitos, validar se um contêiner está sendo executado, executar vários contêineres no mesmo host e executar contêineres desconectados, consulte Instalar e executar contêineres de Fala com o Docker.

Dica

Para obter os resultados mais úteis, use o contêiner de identificação de idioma de Fala com os contêineres de conversão de fala em texto ou de conversão de fala em texto personalizada.

Imagens de contêiner

A imagem do contêiner de identificação de idioma de Fala para todas as versões e localidades suportadas pode ser encontrada na agregação Registro de Contêiner da Microsoft (MCR). Ela reside no repositório azure-cognitive-services/speechservices/ e é chamada language-detection.

A screenshot of the search connectors and triggers dialog.

O nome da imagem de contêiner totalmente qualificado é mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection. Acrescente uma versão específica ou acrescente :latest para obter a versão mais recente.

Versão Caminho
Mais recente mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.12.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.12.0-amd64-preview

Todas as marcas, exceto latest, estão disponíveis no seguinte formato e diferenciam maiúsculas de minúsculas:

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

As marcas também estão disponíveis no formato JSON para sua conveniência. O corpo inclui o caminho do contêiner e a lista de marcas. As marcas não são classificadas por versão, mas "latest" é sempre incluída no final da lista, conforme mostrado neste trecho:

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    <--redacted for brevity-->
    "1.8.0-amd64-preview",
    "latest"
  ]
}

Obtenha a imagem de contêiner com o docker pull

Você precisa dos pré-requisitos, incluindo o hardware necessário. Veja também a alocação recomendada de recursos para cada contêiner de Fala.

Use o comando docker pull para baixar uma imagem de contêiner do Microsoft Container Registry:

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

Executar o contêiner com a execução do Docker

Use o comando docker run para executar o contêiner.

A seguinte tabela mostrará vários parâmetros de docker run e as descrições correspondentes:

Parâmetro Descrição
{ENDPOINT_URI} O ponto de extremidade é necessário para obter a medição e a cobrança. Para obter mais informações, consulte os argumentos de cobrança.
{API_KEY} A chave de API é obrigatória. Para obter mais informações, consulte os argumentos de cobrança.

Quando você executar o contêiner de identificação de idioma de Fala, configure a porta, a memória e a CPU de acordo com os requisitos e as recomendações do contêiner de identificação de idioma.

Aqui está um exemplo de comando docker run com valores de espaço reservado. Você deve especificar os valores para 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}

Esse comando:

  • Executa um contêiner de detecção de idioma de Fala a partir da imagem de contêiner.
  • Aloca um núcleo de CPU e 1 GB de memória.
  • Expõe a porta TCP 5000 e aloca um pseudo-TTY para o contêiner.
  • Remove automaticamente o contêiner depois que ele sai. A imagem de contêiner ainda fica disponível no computador host.

Para obter mais informações sobre docker run com contêineres de Fala, consulte Instalar e executar contêineres de Fala com o Docker.

Executar com o contêiner de conversão de fala em texto

Se você quiser executar o contêiner de identificação de idioma com o contêiner de conversão de fala em texto, use esta imagem do Docker. Depois que ambos os contêineres forem iniciados, use este comando docker run para executar 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

O aumento do número de chamadas simultâneas poderá afetar a confiabilidade e a latência. Para fazer a identificação de idioma, recomendamos usar, no máximo, quatro chamadas simultâneas com uma CPU de 1 GB de memória. Para hosts com duas CPUs e 2 GB de memória, recomendamos usar, no máximo, seis chamadas simultâneas.

Usar o contêiner

Os contêineres de Fala fornecem APIs de ponto de extremidade de consulta baseadas em websocket que são acessadas através do SDK de Fala e da CLI de Fala. Por padrão, o SDK de Fala e a CLI de Fala usam o serviço público de Fala. Para usar o contêiner, você precisa alterar o método de inicialização.

Importante

Ao usar o serviço de Fala com contêineres, certifique-se de usar a autenticação de host. Se você configurar a chave e a região, as solicitações irão para o serviço público de Fala. Os resultados do serviço de Fala podem não ser os que você espera. As solicitações de contêineres desconectados falharão.

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o host do contêiner:

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

Em vez de usar essa configuração de inicialização da Nuvem do Azure:

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

Use essa configuração com o ponto de extremidade do contêiner:

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

Ao usar a CLI de Fala em um contêiner, inclua a opção--host http://localhost:5000/. Você também deve especificar --key none para garantir que a CLI não tente usar uma chave de Fala para autenticação. Para obter informações sobre como configurar a CLI de Fala, confira Introdução à CLI de Fala de IA do Azure.

Experimente a identificação de idioma usando a autenticação de host em vez da chave e da região. Quando você executa a ID de idioma em um contêiner, use o objeto SourceLanguageRecognizer em vez de SpeechRecognizer ou TranslationRecognizer.

Próximas etapas