Adicionar um conjunto de dados de treinamento de voz profissional
Quando você estiver pronto para criar uma voz personalizada de conversão de texto em fala para seu aplicativo, a primeira etapa é reunir gravações de áudio e scripts associados para começar a treinar o modelo de voz. Para obter detalhes sobre como gravar amostras de voz, consulte o tutorial. O serviço de Fala usa esses dados para criar uma voz exclusiva ajustada para corresponder à voz nas gravações. Depois de treinar a voz, você poderá começar a sintetizar a fala em seus aplicativos.
Todos os dado carregado deve atender aos requisitos do tipo de dados escolhido. É importante formatar corretamente os dados antes de carregá-los, o que garante que eles serão processados com precisão pelo serviço de Fala. Para confirmar se os dados estão formatados corretamente, consulte Tipos de dados de treinamento.
Observação
- Os usuários da assinatura padrão (S0) podem fazer upload de cinco arquivos de dados simultaneamente. Ao atingir o limite, espere até que pelo menos uma importação dos seus arquivos de dados seja concluída. Em seguida, tente novamente.
- O número máximo de arquivos de dados que podem ser importados por assinatura é de 500 arquivos .zip para usuários de assinatura standard (S0). Veja as cotas e limites do serviço de Fala para obter mais detalhes.
Upload de dados
Quando você estiver pronto para carregar os dados, vá para a guia Preparar dados de treinamento para adicionar o primeiro conjunto de treinamento e carregar os dados. Um conjunto de treinamento é um conjunto de enunciados de áudio e seus respectivos scripts de mapeamento usados para treinar um modelo de voz. Você pode usar um conjunto de treinamento para organizar os seus dados de treinamento. O serviço verifica a prontidão dos dados de acordo com cada conjunto de treinamento. É possível importar diversos dados para um conjunto de treinamento.
Para carregar os dados de treinamento, siga estas etapas:
- Entre no Speech Studio.
- Selecione Voz personalizada> Nome do projeto >Preparar dados de treinamento>Carregar dados.
- No assistente Carregar dados, escolha um tipo de dados e, em seguida, selecione Avançar.
- Selecione os arquivos locais do computador ou insira a URL de armazenamento de Blobs do Azure para carregar os dados.
- Em Especificar o conjunto de treinamento de destino, selecione um conjunto de treinamento existente ou crie um novo. Se você criou um novo conjunto de treinamento, verifique se ele está selecionado na lista suspensa antes de continuar.
- Selecione Avançar.
- Insira um nome e uma descrição para os dados e selecione Avançar.
- Examine os detalhes de carregamento e selecione Enviar.
Observação
IDs duplicadas não são aceitas. Os enunciados com a mesma ID serão removidos.
Nomes de áudio duplicados são removidos do treinamento. Verifique se os dados selecionados não contêm os mesmos nomes de áudio no arquivo .zip ou em diversos arquivos .zip. Se as IDs de enunciado (em arquivos de áudio ou de script) forem duplicadas, elas serão rejeitadas.
Os arquivos de dados são validados automaticamente quando você seleciona Enviar. A validação de dados inclui uma série de verificações nos arquivos de áudio para verificar o formato, o tamanho e a taxa de amostragem do arquivo. Se houver erros, corrija-os e envie novamente.
Após carregar os dados, você pode verificar os detalhes na exibição de detalhes do conjunto de treinamento. Na página de detalhes, é possível verificar problemas de pronúncia e o nível de ruídos para cada um dos seus dados. A pontuação de pronúncia no nível da frase varia de 0 a 100. Uma pontuação abaixo de 70 normalmente indica um erro de fala ou uma incompatibilidade com o script. Enunciados com uma pontuação geral inferior a 70 serão rejeitados. Um sotaque bem marcado pode reduzir a pontuação de pronúncia e afetar a voz digital gerada.
Resolva problemas de dados online
Após concluir o carregamento, você poderá verificar os detalhes dos dados do conjunto de treinamento. Antes de continuar a treinar o modelo de voz, tente resolver todos os problemas de dados.
Você pode identificar e resolver problemas de dados por enunciado no Speech Studio.
Na página de detalhes, vá para a página Dados aceitos ou Dados rejeitados. Selecione enunciados individuais que você deseja alterar e clique em Editar.
Você pode escolher quais problemas de dados serão exibidos com base em seus critérios.
A janela Editar será exibida.
Atualize a transcrição ou o arquivo de gravação de acordo com a descrição do problema na janela de edição.
Você pode editar a transcrição na caixa de texto e, em seguida, clicar em Concluído
Se você precisar atualizar o arquivo de gravação, selecione Atualizar arquivo de gravação e carregue o arquivo de gravação fixo (.wav).
Após fazer alterações em seus dados, é necessário verificar a qualidade dos dados clicando em Analisar dados antes de usar esse conjunto de dados para treinamento.
Você não pode selecionar esse conjunto de treinamento para o modelo de treinamento antes da conclusão da análise.
Você também pode excluir enunciados com problemas selecionando-os e clicando em Excluir.
Problemas de dados típicos
Os problemas são divididos em três tipos. Consulte as tabelas a seguir para verificar os respectivos tipos de erros.
Rejeitado automaticamente
Os dados com esses erros não serão usados para treinamento. Os dados importados com erros serão ignorados, portanto, você não precisa excluí-los. Você pode corrigir esses erros de dados online ou carregar os dados corrigidos novamente para treinamento.
Categoria | Nome | Descrição |
---|---|---|
Script | Separador inválido | Separe a ID do enunciado e o conteúdo do script com um caractere Tab. |
Script | ID de script inválida | A ID da linha do script deve ser numérica. |
Script | Script duplicado | Cada linha do conteúdo do script deve ser exclusiva. A linha é duplicada com {}. |
Script | Script muito longo | O script deve ter menos de 1.000 caracteres. |
Script | Sem áudio correspondente | A ID de cada expressão (cada linha do arquivo de script) deve corresponder à ID de áudio. |
Script | Sem script válido | Nenhum script válido é encontrado neste conjunto de dados. Corrija as linhas do script que aparecem na lista detalhada de problemas. |
Áudio | Nenhum script correspondente | Nenhum arquivo de áudio corresponde à ID do script. O nome dos arquivos .wav deve corresponder às IDs no arquivo de script. |
Áudio | Formato de áudio inválido | O formato de áudio dos arquivos .wav é inválido. Verifique o formato do arquivo .wav usando uma ferramenta de áudio como o SoX. |
Áudio | Taxa de amostragem baixa | A taxa de amostragem dos arquivos .wav não pode ser inferior a 16 KHz. |
Áudio | Áudio muito longo | A duração do áudio é maior que 30 segundos. Divida o áudio longo em mais arquivos. É uma boa ideia tornar declarações menor que 15 segundos. |
Áudio | Sem áudio válido | Nenhum áudio válido foi encontrado neste conjunto de dados. Verifique os dados de seu áudio e carregue novamente. |
Incompatibilidade | Enunciado de baixa pontuação | A pontuação de pronúncia no nível da sentença é inferior a 70. Revise o script e o conteúdo de áudio para verificar se eles correspondem. |
Corrigido automaticamente
Os erros a seguir são corrigidos automaticamente, mas você deve examiná-los e confirmar que as correções foram feitas do jeito certo.
Categoria | Nome | Descrição |
---|---|---|
Incompatibilidade | Silêncio corrigido automaticamente | O silêncio inicial foi detectado como sendo inferior a 100 ms e foi estendido para 100 ms automaticamente. Baixe o conjunto de dados normalizado para revisão. |
Incompatibilidade | Silêncio corrigido automaticamente | O silêncio final foi detectado como sendo inferior a 100 ms e foi estendido para 100 ms automaticamente. Baixe o conjunto de dados normalizado para revisão. |
Script | Texto normalizado automaticamente | O texto é normalizado automaticamente para dígitos, símbolos e abreviações. Revise o script e o áudio para certificar-se de que eles correspondam. |
Verificação manual necessária
Os erros não resolvidos listados na tabela a seguir afetam a qualidade do treinamento, mas os dados com esses erros não serão excluídos durante o treinamento. Para um treinamento de qualidade superior, é uma boa ideia corrigir esses erros manualmente.
Categoria | Nome | Descrição |
---|---|---|
Script | Texto não normalizado | Esse script contém símbolos. Normalize os símbolos para corresponder ao áudio. Por exemplo, normalize / para barrar. |
Script | Enunciados de perguntas insuficientes | Pelo menos 10 por cento do total de enunciados devem ser frases interrogativas. Isso ajuda o modelo de voz a expressar adequadamente um tom questionador. |
Script | Enunciados de exclamação insuficientes | Pelo menos 10 por cento do total de declarações devem ser frases de exclamação. Isso ajuda o modelo de voz a expressar adequadamente um tom animado. |
Script | Sem pontuação final válida | Adicione um dos seguintes itens no final da linha: parada completa (meia largura '.' ou largura total '。'), ponto de exclamação (meia largura '!' ou largura total '!' ) ou ponto de interrogação (meia largura '?' ou largura total '?'). |
Áudio | Taxa de amostragem baixa para voz neural | Recomenda-se que a taxa de amostragem de seus arquivos .wav seja de 24 KHz ou mais para a criação de vozes neurais. Se for inferior, ele será automaticamente gerado para 24 KHz. |
Volume | Volume geral muito baixo | O volume não deve ser inferior a -18 dB (10 por cento do volume máximo). Controle o nível médio do volume dentro da faixa adequada durante o registro da amostra ou a preparação de dados. |
Volume | Estouro de volume | O estouro do volume é detectado em {}s. Ajuste o equipamento de gravação para evitar o estouro de volume em seu valor de pico. |
Volume | Problema de silêncio inicial | O primeiro silêncio de 100 ms não é limpo. Reduza o nível de ruído da gravação e deixe os primeiros 100 ms no início em silêncio. |
Volume | Problema de silêncio final | O último silêncio de 100 ms não é limpo. Reduza o nível de ruído da gravação e deixe os últimos 100 ms no final em silêncio. |
Incompatibilidade | Palavras com pontuação baixa | Revise o script e o conteúdo de áudio para verificar se eles correspondem e controle o nível de ruído de fundo. Reduza a duração do silêncio longo ou divida o áudio em vários enunciados se ele for muito longo. |
Incompatibilidade | Problema de silêncio inicial | Áudio ouvido antes da primeira palavra. Revise o script e o conteúdo de áudio para verificar se eles correspondem, controle o nível de ruído de fundo e deixe os primeiros 100 ms em silêncio. |
Incompatibilidade | Problema de silêncio final | Áudio extra ouvido após a última palavra. Revise o script e o conteúdo de áudio para verificar se eles correspondem, controle o nível de ruído de fundo e deixe os últimos 100 ms em silêncio. |
Incompatibilidade | Baixa taxa de ruídos de sinal | O nível de SNR de áudio é inferior a 20 dB. É recomendável pelo menos 35 dB. |
Incompatibilidade | Nenhuma pontuação disponível | Falha ao reconhecer o conteúdo de fala neste áudio. Verifique o áudio e o conteúdo do script para certificar-se de que o áudio seja válido e correspondente ao script. |
Próximas etapas
Você precisa de um conjunto de dados de treinamento para criar uma voz profissional. Um conjunto de dados de treinamento inclui arquivos de áudio e script. Os arquivos de áudio são gravações do talento de voz lendo os arquivos de script. Os arquivos de script são o texto dos arquivos de áudio.
Neste artigo, você criará um conjunto de treinamento e obterá sua ID do recurso. Em seguida, usando a ID do recurso, você pode carregar um conjunto de arquivos de áudio e script.
Criar um conjunto de treinamento
Para criar um conjunto de treinamento, use a operação TrainingSets_Create da API de voz personalizada. Construa o corpo da solicitação de acordo com as seguintes instruções:
- Defina a propriedade
projectId
necessária. Consulte criar um projeto. - Defina a propriedade
voiceKind
obrigatória comoMale
ouFemale
. O tipo não pode ser alterado mais tarde. - Defina a propriedade
locale
obrigatória. Essa deve ser a localidade dos dados do conjunto de treinamento. A localidade do conjunto de treinamento deve ser a mesma que a localidade da instrução de consentimento. Ela não poderá ser alterada posteriormente. Você pode encontrar a lista de localidades de conversão de texto em fala aqui. - Opcionalmente, defina a propriedade
description
para a descrição do conjunto de treinamento. A descrição do conjunto de treinamento pode ser alterada posteriormente.
Faça uma solicitação HTTP PUT usando o URI, conforme mostrado no exemplo de TrainingSets_Create a seguir.
- Substitua
YourResourceKey
pela chave do recurso de Fala. - Substitua
YourResourceRegion
por sua região de recurso de Fala. - Substitua
JessicaTrainingSetId
por uma ID de conjunto de treinamento de sua escolha. A ID diferenciada de maiúsculas e minúsculas será usada no URI do conjunto de treinamento e não poderá ser alterada posteriormente.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
"description": "300 sentences Jessica data in general style.",
"projectId": "ProjectId",
"locale": "en-US",
"voiceKind": "Female"
} ' "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/trainingsets/JessicaTrainingSetId?api-version=2024-02-01-preview"
Você deve receber um corpo de resposta no seguinte formato:
{
"id": "JessicaTrainingSetId",
"description": "300 sentences Jessica data in general style.",
"projectId": "ProjectId",
"locale": "en-US",
"voiceKind": "Female",
"status": "Succeeded",
"createdDateTime": "2023-04-01T05:30:00.000Z",
"lastActionDateTime": "2023-04-02T10:15:30.000Z"
}
Carregar dados do conjunto de treinamento
Para carregar um conjunto de treinamento de áudio e scripts, use a operação TrainingSets_UploadData da API de voz personalizada.
Antes de chamar essa API, armazene arquivos de gravação e script no Blob do Azure. No exemplo abaixo, os arquivos de gravação são https://contoso.blob.core.windows.net/voicecontainer/jessica300/*.wav e os arquivos de script são https://contoso.blob.core.windows.net/voicecontainer/jessica300/*.txt.
Crie o corpo da solicitação de acordo com as seguintes instruções:
- Defina a propriedade
kind
obrigatória comoAudioAndScript
. O tipo determina o tipo de conjunto de treinamento. - Defina a propriedade
audios
obrigatória. Dentro da propriedadeaudios
, defina as seguintes propriedades:- Defina a propriedade
containerUrl
obrigatória para a URL do contêiner do Armazenamento de Blobs do Azure que contém os arquivos de áudio. Use SAS (assinaturas de acesso compartilhado) para um contêiner com permissões de leitura e listagem. - Defina a propriedade
extensions
obrigatória para as extensões dos arquivos de áudio. - Opcionalmente, defina a propriedade
prefix
para definir um prefixo para o nome do blob.
- Defina a propriedade
- Defina a propriedade
scripts
obrigatória. Dentro da propriedadescripts
, defina as seguintes propriedades:- Defina a propriedade
containerUrl
obrigatória para a URL do contêiner do Armazenamento de Blobs do Azure que contém os arquivos de script. Use SAS (assinaturas de acesso compartilhado) para um contêiner com permissões de leitura e listagem. - Defina a propriedade
extensions
obrigatória para as extensões dos arquivos de script. - Opcionalmente, defina a propriedade
prefix
para definir um prefixo para o nome do blob.
- Defina a propriedade
Faça uma solicitação HTTP POST usando o URI, conforme mostrado no exemplo de TrainingSets_UploadData a seguir.
- Substitua
YourResourceKey
pela chave do recurso de Fala. - Substitua
YourResourceRegion
por sua região de recurso de Fala. - Substitua
JessicaTrainingSetId
se você especificou uma ID de conjunto de treinamento diferente na etapa anterior.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
"kind": "AudioAndScript",
"audios": {
"containerUrl": "https://contoso.blob.core.windows.net/voicecontainer?mySasToken",
"prefix": "jessica300/",
"extensions": [
".wav"
]
},
"scripts": {
"containerUrl": "https://contoso.blob.core.windows.net/voicecontainer?mySasToken",
"prefix": "jessica300/",
"extensions": [
".txt"
]
}
} ' "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/trainingsets/JessicaTrainingSetId:upload?api-version=2024-02-01-preview"
O cabeçalho de resposta contém a propriedade Operation-Location
. Use esse URI para obter detalhes sobre a operação de TrainingSets_UploadData. Aqui está um exemplo do cabeçalho da resposta:
Operation-Location: https://eastus.api.cognitive.microsoft.com/customvoice/operations/284b7e37-f42d-4054-8fa9-08523c3de345?api-version=2024-02-01-preview
Operation-Id: 284b7e37-f42d-4054-8fa9-08523c3de345