Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Reconhecimento de Fala Embutido foi concebido para cenários no dispositivo de voz para texto e texto para fala, onde a conectividade com a nuvem é intermitente ou indisponível. Por exemplo, pode utilizar fala embutida em maquinaria industrial, numa unidade de ar condicionado com comando de voz ou num carro que possa sair da área de cobertura. Também pode desenvolver soluções híbridas na cloud e offline. Para cenários em que os seus dispositivos devem estar num ambiente seguro, como um banco ou entidade governamental, deve primeiro considerar contentores desconectados.
Importante
A Microsoft limita o acesso à fala embutida. Pode candidatar-se ao acesso através do Azure Speech in Foundry Tools embedded speech limited access review. Para mais informações, consulte Acesso limitado para fala embutida.
Requisitos da plataforma
A fala embutida está incluída no Speech SDK (versão 1.24.1 e superior) para C#, C++ e Java. Consulte os requisitos gerais de instalação do SDK de Fala para linguagem de programação e detalhes específicos da plataforma-alvo.
Seguem-se estimativas gerais do consumo de memória com fala embutida. Os números finais dependem da configuração das funcionalidades.
- Reconhecimento ou tradução de voz: Tamanho total dos ficheiros de um modelo + 200 MB.
- Síntese de voz: 100-200 MB, dependendo do local.
Escolha o ambiente alvo
Requer Android 8.0 (nível de API 26) ou superior em hardware Arm64 (arm64-v8a) ou Arm32 (armeabi-v7a).
Limitações
- A fala embutida está disponível apenas com SDKs em C#, C++ e Java. Os outros SDKs de Fala, CLI de Fala e APIs REST não suportam fala embutida.
- O reconhecimento de voz embutido suporta apenas formatos de áudio WAV codificados em PCM mono de 16 bits, 8 kHz ou 16 kHz.
- Vozes neurais embutidas suportam RIFF/RAW de 16 ou 24 kHz.
Pacotes de SDK de voz incorporados
Para aplicações embutidas em C#, instale o seguinte Speech SDK para pacotes C#:
| Pacote | Descrição |
|---|---|
| Microsoft. CognitiveServices.Speech | Obrigatório para usar o SDK de Fala |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Necessário para reconhecimento de fala incorporado |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Necessário para síntese de voz incorporada |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Necessária para reconhecimento e síntese de fala embutida |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Necessária para reconhecimento e síntese de fala embutida |
Para aplicações embutidas em C++, instale os seguintes pacotes Speech SDK for C++:
| Pacote | Descrição |
|---|---|
| Microsoft. CognitiveServices.Speech | Obrigatório para usar o SDK de Fala |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Necessário para reconhecimento de fala incorporado |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Necessário para síntese de voz incorporada |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Necessária para reconhecimento e síntese de fala embutida |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Necessária para reconhecimento e síntese de fala embutida |
Escolha o ambiente alvo
Para Java aplicações embutidas, adicione client-sdk-embedded (.jar) como dependência. Este pacote suporta fala na cloud, embutida e híbrida.
Importante
Não adicione cliente-sdk no mesmo projeto, pois suporta apenas serviços de voz na cloud.
Siga estes passos para instalar o Speech SDK para Java usando o Apache Maven:
- Instala Apache Maven.
- Abre um prompt de comandos onde queres o novo projeto e cria um novo
pom.xmlficheiro. - Copie o seguinte conteúdo XML em:
pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk-embedded</artifactId> <version>1.43.0</version> </dependency> </dependencies> </project> - Execute o seguinte comando Maven para instalar o Speech SDK e as dependências.
mvn clean dependency:copy-dependencies
Modelos e vozes
Para fala embutida, é necessário baixar os modelos de reconhecimento de voz para voz para texto e vozes para texto para voz. As instruções são fornecidas após a conclusão bem-sucedida do processo de revisão de acesso limitado .
Os seguintes modelos de voz para texto estão disponíveis: da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, pt-PT, zh-CN, zh-HK, e zh-TW.
Todos os locais de texto para fala aqui (exceto fa-IR, persa (Irão)) estão disponíveis diretamente da caixa, com 1 voz feminina selecionada e/ou 1 voz masculina selecionada. Agradecemos a sua opinião para nos ajudar a avaliar a procura por mais línguas e vozes.
Configuração de voz embutida
Para aplicações ligadas à cloud, como mostrado na maioria dos exemplos de Speech SDK, utiliza-se o SpeechConfig objeto com uma chave API e um endpoint. Para a integração de fala, não se utiliza um recurso da Foundry para fala. Em vez de um recurso na cloud, utiliza os modelos e vozes que descarrega para o seu dispositivo local.
Usa o EmbeddedSpeechConfig objeto para definir a localização dos modelos ou vozes. Se a sua aplicação for usada tanto para voz para texto como para texto, pode usar o mesmo EmbeddedSpeechConfig objeto para definir a localização dos modelos e vozes.
// Provide the location of the models and voices.
List<string> paths = new List<string>();
paths.Add("C:\\dev\\embedded-speech\\stt-models");
paths.Add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.FromPaths(paths.ToArray());
// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
"Microsoft Speech Recognizer en-US FP Model V8",
Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);
Dica
A GetEnvironmentVariable função está definida no quickstart de voz para texto e no quickstart de texto para fala.
// Provide the location of the models and voices.
vector<string> paths;
paths.push_back("C:\\dev\\embedded-speech\\stt-models");
paths.push_back("C:\\dev\\embedded-speech\\tts-voices");
auto embeddedSpeechConfig = EmbeddedSpeechConfig::FromPaths(paths);
// For speech to text
embeddedSpeechConfig->SetSpeechRecognitionModel((
"Microsoft Speech Recognizer en-US FP Model V8",
GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig->SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat::Riff24Khz16BitMonoPcm);
// Provide the location of the models and voices.
List<String> paths = new ArrayList<>();
paths.add("C:\\dev\\embedded-speech\\stt-models");
paths.add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.fromPaths(paths);
// For speech to text
embeddedSpeechConfig.setSpeechRecognitionModel(
"Microsoft Speech Recognizer en-US FP Model V8",
System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
"Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);
Exemplos de código de voz embutidos
Pode encontrar amostras de fala embutidas prontas a usar em GitHub. Para comentários sobre projetos feitos de raiz, consulte exemplos de documentação específica:
Pode encontrar amostras de fala embutidas prontas a usar em GitHub. Para comentários sobre projetos feitos de raiz, consulte exemplos de documentação específica:
Pode encontrar amostras de fala embutidas prontas a usar em GitHub. Para comentários sobre projetos feitos de raiz, consulte exemplos de documentação específica:
Fala híbrida
A fala híbrida do objeto HybridSpeechConfig utiliza o serviço de fala na nuvem por padrão e fala embutida como alternativa, caso a conectividade à nuvem seja limitada ou lenta.
Com a configuração híbrida de fala para voz para texto (modelos de reconhecimento), a fala embutida é utilizada quando a ligação ao serviço cloud falha após tentativas repetidas. O reconhecimento pode continuar a usar o serviço cloud novamente se a ligação for retomada mais tarde.
Com a configuração híbrida de fala para texto para voz (vozes), a síntese embutida e a nuvem são executadas em paralelo e o resultado final é selecionado com base na velocidade de resposta. O melhor resultado é avaliado novamente em cada novo pedido de síntese.
Fala da nuvem
Para fala na nuvem, utilizas o SpeechConfig objeto, como mostrado no guia rápido de voz para texto e no guia rápido de texto para voz. Para executar os quickstarts para fala embutida, pode substituir SpeechConfig por EmbeddedSpeechConfig ou HybridSpeechConfig. A maioria dos outros códigos de reconhecimento e síntese de voz são iguais, quer se utilize uma configuração na nuvem, embebida ou híbrida.
Capacidades de vozes embutidas
Para vozes embutidas, é essencial notar que certas etiquetas de linguagem de marcação de síntese de voz (SSML) podem não ser atualmente suportadas devido a diferenças na estrutura do modelo. Para informações detalhadas sobre as etiquetas SSML não suportadas, consulte a tabela seguinte.
| Nível 1 | Nível 2 | Subvalores | Suporte em NTTS integrados |
|---|---|---|---|
| Áudio | src | Não | |
| marcador | Sim | ||
| interrupção | Força | Sim | |
| Tempo | Sim | ||
| Silêncio | tipo | Principal, Final, Exato por Vírgula, etc. | Não |
| Valor | Não | ||
| Ênfase | nível | Não | |
| idioma | Não | ||
| léxico | Uri | Sim | |
| Matemática | Não | ||
| msttsaudioduration | Valor | Não | |
| msttsbackgroundaudio | src | Não | |
| Volume | Não | ||
| desvanecer | Não | ||
| desvanecimento | Não | ||
| MSTTSEXPRESS-AS | Estilo | Sim1 | |
| styledegree | Não | ||
| função | Não | ||
| msttssilence | Não | ||
| msttsviseme | tipo | redlips_front, Expressão Facial | Não |
| p | Sim | ||
| fonema | Alfabeto | IPA, SAPI, UPS, etc. | Sim |
| pH | Sim | ||
| Prosódia | Contorno | Suporte ao nível de frases, somente ao nível das palavras para en-US e zh-CN | Sim |
| Apresentação | Sim | ||
| intervalo | Sim | ||
| Taxa | Sim | ||
| Volume | Sim | ||
| s | Sim | ||
| say-as | interpretar como | Caracteres, decomposição, dígito_numérico, data, etc. | Sim |
| Formato | Sim | ||
| Detalhe | Sim | ||
| subsistema | alias | Sim | |
| fala | Sim | ||
| Voz | Não |
1 O msttsexpress-as estilo é suportado apenas para a en-US-JennyNeural voz.