Fala personalizada para contêineres de texto com o Docker
Artigo
A fala personalizada para o contêiner de texto transcreve gravações de fala ou áudio em lote em tempo real com resultados intermediários. Você pode usar um modelo personalizado criado no portal de fala personalizado. Neste artigo, você aprenderá a baixar, instalar e executar um contêiner de fala para texto personalizado.
Para obter mais informações sobre pré-requisitos, validação de que um contêiner está em execução, execução de vários contêineres no mesmo host e execução de contêineres desconectados, consulte Instalar e executar contêineres de fala com o Docker.
Imagens de contentor
A imagem de contêiner de fala personalizada para texto para todas as versões e localidades suportadas pode ser encontrada no sindicato Microsoft Container Registry (MCR). Ele reside dentro do azure-cognitive-services/speechservices/ repositório e é chamado custom-speech-to-textde .
O nome da imagem de contêiner totalmente qualificada é, mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text. Anexe uma versão específica ou anexe :latest para obter a versão mais recente.
Todas as tags, exceto latest, estão no seguinte formato e diferenciam maiúsculas de minúsculas:
<major>.<minor>.<patch>-<platform>-<prerelease>
Nota
O locale e voice para fala personalizada para contêineres de texto é determinado pelo modelo personalizado ingerido pelo contêiner.
As tags 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 tags. As tags não são classificadas por versão, mas "latest" são sempre incluídas no final da lista, conforme mostrado neste trecho:
O locale e voice para contêineres de fala personalizados é determinado pelo modelo personalizado ingerido pelo contêiner.
Obter o ID do modelo
Antes de executar o contêiner, você precisa saber a ID do modelo personalizado ou uma ID de modelo base. Ao executar o contêiner, você especifica uma das IDs de modelo a serem baixadas e usadas.
O modelo personalizado deve ser treinado usando o Speech Studio. Para obter informações sobre como obter a ID do modelo, consulte Ciclo de vida do modelo de fala personalizado.
Obtenha a ID do modelo para usar como argumento para o ModelId parâmetro do docker run comando.
Você pode obter as informações disponíveis do modelo base usando a opção BaseModelLocale={LOCALE}. Esta opção fornece uma lista de modelos base disponíveis nessa localidade na sua conta de cobrança.
Para obter IDs de modelo base, use o docker run comando. Por exemplo:
Este comando verifica a imagem do contêiner e retorna os modelos base disponíveis da localidade de destino.
Nota
Embora você use o docker run comando, o contêiner não é iniciado para serviço.
A saída fornece uma lista de modelos base com a localidade de informações, ID do modelo e hora da data de criação. Por exemplo:
Checking available base model for en-us
2020/10/30 21:54:20 [Info] Searching available base models for en-us
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2016-11-04T08:23:42Z, Id: a3d8aab9-6f36-44cd-9904-b37389ce2bfa
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2016-11-04T12:01:02Z, Id: cc7826ac-5355-471d-9bc6-a54673d06e45
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2017-08-17T12:00:00Z, Id: a1f8db59-40ff-4f0e-b011-37629c3a1a53
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2018-04-16T11:55:00Z, Id: c7a69da3-27de-4a4b-ab75-b6716f6321e5
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2018-09-21T15:18:43Z, Id: da494a53-0dad-4158-b15f-8f9daca7a412
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2018-10-19T11:28:54Z, Id: 84ec130b-d047-44bf-a46d-58c1ac292ca7
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2018-11-26T07:59:09Z, Id: ee5c100f-152f-4ae5-9e9d-014af3c01c56
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2018-11-26T09:21:55Z, Id: d04959a6-71da-4913-9997-836793e3c115
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2019-01-11T10:04:19Z, Id: 488e5f23-8bc5-46f8-9ad8-ea9a49a8efda
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2019-02-18T14:37:57Z, Id: 0207b3e6-92a8-4363-8c0e-361114cdd719
2020/10/30 21:54:21 [Info] [Base model] Locale: en-us, CreatedDate: 2019-03-03T17:34:10Z, Id: 198d9b79-2950-4609-b6ec-f52254074a05
2020/10/30 21:54:21 [Fatal] Please run this tool again and assign --modelId '<one above base model id>'. If no model id listed above, it means currently there is no available base model for en-us
Download do modelo de exibição
Antes de executar o contêiner, você pode, opcionalmente, obter as informações de modelos de exibição disponíveis e optar por baixar esses modelos em seu contêiner de fala para texto para obter uma saída de exibição final altamente aprimorada. O download do modelo de exibição está disponível com o contêiner de fala personalizada para texto versão 3.1.0 e posterior.
Nota
Embora você use o docker run comando, o contêiner não é iniciado para serviço.
Você pode consultar ou baixar qualquer um ou todos esses tipos de modelo de exibição: Repontuação (Rescore), Pontuação (Punct), resegmentação (Resegment) e wfstitn (Wfstitn). Caso contrário, você pode usar a FullDisplay opção (com ou sem os outros tipos) para consultar ou baixar todos os tipos de modelos de exibição.
Defina o BaseModelLocale para consultar o modelo de exibição mais recente disponível na localidade de destino. Se você incluir vários tipos de modelo de exibição, o comando retornará os modelos de exibição mais recentes disponíveis para cada tipo. Por exemplo:
docker run --rm -it \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
Punct Rescore Resegment Wfstitn \ # Specify `FullDisplay` or a space-separated subset of display models
BaseModelLocale={LOCALE} \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Defina o DisplayLocale para baixar o modelo de exibição mais recente disponível na localidade de destino. Ao definir DisplayLocaleo , você também deve especificar FullDisplay ou um subconjunto separado por espaço dos modelos de exibição. O comando baixa o modelo de exibição mais recente disponível para cada tipo especificado. Por exemplo:
docker run --rm -it \
mcr.microsoft.com/azure-cognitive-services/speechservices/custom-speech-to-text \
Punct Rescore Resegment Wfstitn \ # Specify `FullDisplay` or a space-separated subset of display models
DisplayLocale={LOCALE} \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
Defina um parâmetro de ID de modelo para baixar um modelo de exibição específico: Repontuação (RescoreId), Pontuação (PunctId), resegmentação (ResegmentId) ou wfstitn (WfstitnId). Isso é semelhante a como você baixaria um modelo base através do ModelId parâmetro. Por exemplo, para baixar um modelo de exibição de repontuação, você pode usar o seguinte comando com o RescoreId parâmetro:
Se você definir mais de um parâmetro de consulta ou download, o comando priorizará nesta ordem: BaseModelLocale, ID do modelo e, em seguida DisplayLocale , (aplicável apenas para modelos de exibição).
A tabela a seguir representa os vários docker run parâmetros e suas descrições correspondentes:
Parâmetro
Description
{VOLUME_MOUNT}
A montagem do volume do computador host, que o Docker usa para persistir o modelo personalizado. Um exemplo é c:\CustomSpeech onde a c:\ unidade está localizada na máquina host.
{MODEL_ID}
A fala personalizada ou ID do modelo base. Para obter mais informações, consulte Obter a ID do modelo.
{ENDPOINT_URI}
O ponto de extremidade é necessário para medição e faturamento. Para obter mais informações, consulte argumentos de cobrança.
{API_KEY}
A chave API é necessária. Para obter mais informações, consulte argumentos de cobrança.
Ao executar a fala personalizada para contêiner de texto, configure a porta, a memória e a CPU de acordo com os requisitos e recomendações personalizados de fala para contêiner de texto.
Aqui está um comando de exemplo docker run com valores de espaço reservado. Você deve especificar os VOLUME_MOUNTvalores , MODEL_ID, ENDPOINT_URIe API_KEY :
Para executar contêineres desconectados (não conectados à internet), você deve enviar este formulário de solicitação e aguardar a aprovação. Para obter mais informações sobre como aplicar e comprar um plano de compromisso para usar contêineres em ambientes desconectados, consulte Usar contêineres em ambientes desconectados na documentação de serviços de IA do Azure.
Se você for aprovado para executar o contêiner desconectado da Internet, o exemplo a seguir mostra a formatação do comando a ser usado, com valores de docker run espaço reservado. Substitua esses valores de espaço reservado por seus próprios valores.
Para preparar e configurar uma fala personalizada desconectada para contêiner de texto, você precisa de dois recursos de fala separados:
Um recurso regular do Azure AI Speech configurado para usar uma camada de preço "S0 - Padrão" ou um plano de preços de camada de compromisso "Fala para texto (personalizado)". Isso é usado para treinar, baixar e configurar seus modelos de fala personalizados para uso em seu contêiner.
Um recurso de Fala do Azure AI configurado para usar o plano de preços "Compromisso DC0 (Desconectado)". Isso é usado para baixar o arquivo de licença de contêiner desconectado necessário para executar o contêiner no modo desconectado.
Siga estas etapas para baixar e executar o contêiner em ambientes desconectados.
Baixe um modelo para o contêiner desconectado. Para esta etapa, use um recurso regular do Azure AI Speech configurado para usar uma camada de preço "S0 - Padrão" ou um plano de preços da camada de compromisso "Fala para texto (personalizado)".
Baixe a licença de contêiner desconectado. Para esta etapa, use um recurso de Fala do Azure AI configurado para usar o plano de preços "Compromisso DC0 (Desconectado)".
Para esta etapa, use um recurso regular do Azure AI Speech configurado para usar uma camada de preço "S0 - Padrão" ou um plano de preços da camada de compromisso "Fala para texto (personalizado)".
A tabela a seguir representa os vários docker run parâmetros e suas descrições correspondentes:
Parâmetro
Description
{VOLUME_MOUNT}
A montagem do volume do computador host, que o Docker usa para persistir o modelo personalizado. Um exemplo é c:\CustomSpeech onde a c:\ unidade está localizada na máquina host.
{MODEL_ID}
A fala personalizada ou ID do modelo base. Para obter mais informações, consulte Obter a ID do modelo.
{ENDPOINT_URI}
O ponto de extremidade é necessário para medição e faturamento. Para obter mais informações, consulte argumentos de cobrança.
{API_KEY}
A chave API é necessária. Para obter mais informações, consulte argumentos de cobrança.
Ao executar a fala personalizada para contêiner de texto, configure a porta, a memória e a CPU de acordo com os requisitos e recomendações personalizados de fala para contêiner de texto.
Aqui está um comando de exemplo docker run com valores de espaço reservado. Você deve especificar os VOLUME_MOUNTvalores , MODEL_ID, ENDPOINT_URIe API_KEY :
Em seguida, você baixa o arquivo de licença desconectado. O DownloadLicense=True parâmetro em seu docker run comando baixa um arquivo de licença que permite que seu contêiner do Docker seja executado quando não estiver conectado à Internet. Ele também contém uma data de validade, após a qual o arquivo de licença será inválido para executar o contêiner.
Você só pode usar um arquivo de licença com o contêiner e o modelo apropriados para os quais foi aprovado. Por exemplo, você não pode usar um arquivo de licença para um speech-to-text contêiner com um neural-text-to-speech contêiner.
Marcador de Posição
Description
{IMAGE}
A imagem de contêiner que você deseja usar.
Por exemplo: mcr.microsoft.com/azure-cognitive-services/custom-speech-to-text:latest
{LICENSE_MOUNT}
O caminho onde a licença é baixada e montada.
Por exemplo: /host/license:/path/to/license/directory
{MODEL_PATH}
O caminho onde o modelo está localizado.
Por exemplo: /host/models:/usr/local/models
{ENDPOINT_URI}
O ponto de extremidade para autenticar sua solicitação de serviço. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure.
Por exemplo: https://<your-resource-name>.cognitiveservices.azure.com
{API_KEY}
A chave para o seu recurso de Fala. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure.
{CONTAINER_LICENSE_DIRECTORY}
Localização da pasta de licença no sistema de arquivos local do contêiner.
Por exemplo: /path/to/license/directory
Para esta etapa, use um recurso de Fala do Azure AI configurado para usar o plano de preços "Compromisso DC0 (Desconectado)".
Depois que o arquivo de licença for baixado, você poderá executar o contêiner em um ambiente desconectado. O exemplo a seguir mostra a docker run formatação do comando que você usa, com valores de espaço reservado. Substitua esses valores de espaço reservado por seus próprios valores.
Onde quer que o contêiner seja executado, o arquivo de licença deve ser montado no contêiner e o local da pasta de licença no sistema de arquivos local do contêiner deve ser especificado com Mounts:License=. Uma montagem de saída também deve ser especificada para que os registros de uso de faturamento possam ser gravados.
Marcador de Posição
Description
{IMAGE}
A imagem de contêiner que você deseja usar.
Por exemplo: mcr.microsoft.com/azure-cognitive-services/custom-speech-to-text:latest
{MEMORY_SIZE}
O tamanho apropriado da memória a ser alocada para seu contêiner.
Por exemplo: 4g
{NUMBER_CPUS}
O número apropriado de CPUs a serem alocadas para seu contêiner.
Por exemplo: 4
{LICENSE_MOUNT}
O caminho onde a licença é baixada e montada.
Por exemplo: /host/license:/path/to/license/directory
{MODEL_PATH}
O caminho onde o modelo está localizado.
Por exemplo: /host/models:/usr/local/models
{OUTPUT_PATH}
O caminho de saída para registro.
Por exemplo: /host/output:/path/to/output/directory
Para obter mais informações, consulte registros de uso na documentação de serviços de IA do Azure.
{ENDPOINT_URI}
O ponto de extremidade para autenticar sua solicitação de serviço. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure.
Por exemplo: https://<your-resource-name>.cognitiveservices.azure.com
{API_KEY}
A chave para o seu recurso de Fala. Você pode encontrá-lo na página Chave e ponto de extremidade do seu recurso, no portal do Azure.
{CONTAINER_LICENSE_DIRECTORY}
Localização da pasta de licença no sistema de arquivos local do contêiner.
Por exemplo: /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY}
Localização da pasta de saída no sistema de arquivos local do contêiner.
Por exemplo: /path/to/output/directory
Para esta etapa, use um recurso de Fala do Azure AI configurado para usar o plano de preços "Compromisso DC0 (Desconectado)".
O contêiner de fala personalizada para texto fornece um diretório padrão para gravar o arquivo de licença e o log de faturamento em tempo de execução. Os diretórios padrão são /license e /output, respectivamente.
Ao montar esses diretórios no contêiner com o docker run -v comando, verifique se o diretório da máquina local está definido como propriedade antes user:group nonroot:nonroot de executar o contêiner.
Abaixo está um comando de exemplo para definir a propriedade do arquivo/diretório.
Os contêineres de fala fornecem APIs de ponto de extremidade de consulta baseadas em websocket que são acessadas por meio 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 de Fala público. 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 de Fala pública. Os resultados do serviço de Fala podem não ser os esperados. As solicitações de contêineres desconectados falharão.
Em vez de usar esta configuração de inicialização da nuvem do Azure:
Ao usar a CLI de fala em um contêiner, inclua a --host ws://localhost:5000/ opção. 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, consulte Introdução à CLI de Fala do Azure AI.
Experimente o início rápido de fala para texto usando a autenticação de host em vez de chave e região.