Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Fala Inserida foi projetada para cenários de conversão de texto e texto em fala no dispositivo em que a conectividade de nuvem está intermitente ou indisponível. Por exemplo, você pode usar fala embutida em equipamentos industriais, um ar condicionado com comando de voz ou um carro que possa viajar fora do alcance. Você também pode desenvolver soluções de nuvem híbrida e offline. Para cenários em que seus dispositivos devem estar em um ambiente seguro, como um banco ou entidade governamental, você deve primeiro considerar contêineres desconectados.
Importante
Microsoft limita o acesso à fala inserida. Você pode solicitar acesso por meio da Azure Speech in Foundry Tools embedded speech limited access review. Para obter mais informações, consulte Acesso limitado para fala incorporada.
Requisitos de plataforma
A fala inserida está incluída no SDK de Fala (versão 1.24.1 e superior) para C#, C++e Java. Consulte os requisitos gerais de instalação do SDK de Fala para detalhes específicos da linguagem de programação e da plataforma de destino.
Veja a seguir estimativas gerais de consumo de memória com fala inserida. Os números finais dependem da configuração do recurso.
- Reconhecimento de fala ou tradução: tamanho total dos arquivos de um modelo + 200 MB.
- Síntese de fala: 100 a 200 MB, dependendo da localidade.
Escolha seu ambiente de destino
Requer o Android 8.0 (nível de API 26) ou superior no hardware Arm64 (arm64-v8a) ou Arm32 (armeabi-v7a).
Limitações
- A fala inserida só está disponível com SDKs C#, C++e Java. Os outros SDKs de Fala, CLI de Fala e APIs REST não dão suporte à fala inserida.
- O reconhecimento de fala inserido só dá suporte a formatos de áudio WAV codificados em PCM mono de 16 bits, 8 kHz ou 16 kHz.
- As vozes neurais inseridas dão suporte a RIFF/RAW de 16 ou 24 kHz.
Pacotes do SDK de fala embarcada
Para aplicativos inseridos em C#, instale o seguinte SDK de Fala para pacotes C#:
| Pacote | Descrição |
|---|---|
| Microsoft. CognitiveServices.Speech | Necessário para usar o SDK de Fala |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Necessário para o reconhecimento de voz embutido |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Necessário para síntese de fala embutida |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Necessário para reconhecimento e síntese de fala embarcada |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Necessário para reconhecimento e síntese de fala embarcada |
Para aplicativos C++ incorporados, instale os seguintes pacotes de SDK de Fala para C++:
| Pacote | Descrição |
|---|---|
| Microsoft. CognitiveServices.Speech | Necessário para usar o SDK de Fala |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.SR | Necessário para o reconhecimento de voz embutido |
| Microsoft. CognitiveServices.Speech.Extension.Embedded.TTS | Necessário para síntese de fala embutida |
| Microsoft. CognitiveServices.Speech.Extension.ONNX.Runtime | Necessário para reconhecimento e síntese de fala embarcada |
| Microsoft.CognitiveServices.Speech.Extension.Telemetry | Necessário para reconhecimento e síntese de fala embarcada |
Escolha seu ambiente de destino
Para aplicativos Java incorporados, adicione client-sdk-embedded (.jar) como uma dependência. Esse pacote dá suporte à nuvem, à fala inserida e híbrida.
Importante
Não adicione o client-sdk no mesmo projeto, pois ele dá suporte apenas a serviços de fala na nuvem.
Siga estas etapas para instalar o SDK de Fala para Java usando o Apache Maven:
- Instale o Apache Maven.
- Abra um prompt de comando onde você deseja o novo projeto e crie um novo
pom.xmlarquivo. - 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 suas dependências.
mvn clean dependency:copy-dependencies
Modelos e vozes
Para a fala inserida, você precisa baixar os modelos de reconhecimento de fala para conversão de fala em texto e vozes para conversão de texto em fala. 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 fala em 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-HKe zh-TW.
Todas as localidades de texto para fala aqui (exceto fa-IR, persa (Irã)) estão disponíveis imediatamente com 1 voz feminina pré-selecionada e/ou 1 voz masculina pré-selecionada. Agradecemos a sua contribuição para nos ajudar a medir a demanda por mais idiomas e vozes.
Configuração de fala embarcada
Para aplicativos conectados à nuvem, conforme mostrado na maioria dos exemplos do SDK de Fala, você usa o SpeechConfig objeto com uma chave de API e um ponto de extremidade. Para fala inserida, você não usa um recurso do Foundry para Fala. Em vez de um recurso de nuvem, você usa os modelos e as vozes que baixa para seu dispositivo local.
Use o EmbeddedSpeechConfig objeto para definir o local dos modelos ou vozes. Se o aplicativo for usado para conversão de fala em texto e conversão de texto em fala, você poderá usar o mesmo EmbeddedSpeechConfig objeto para definir o local dos modelos e das 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 é definida no início rápido de conversão de fala em texto e início rápido de texto em 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 fala inserido
Você pode encontrar amostras de fala prontas para uso em GitHub. Para comentários sobre projetos do zero, consulte a documentação específica de exemplos:
Você pode encontrar amostras de fala prontas para uso em GitHub. Para comentários sobre projetos do zero, consulte a documentação específica de exemplos:
Você pode encontrar amostras de fala prontas para uso em GitHub. Para comentários sobre projetos do zero, consulte a documentação específica de exemplos:
Fala híbrida
A fala híbrida com o HybridSpeechConfig objeto usa o serviço de fala na nuvem por padrão e a fala incorporada como uma alternativa caso a conectividade com a nuvem seja limitada ou lenta.
Com a configuração de fala híbrida para conversão de fala em texto (modelos de reconhecimento), a fala inserida é usada quando a conexão com o serviço de nuvem falha após tentativas repetidas. O reconhecimento poderá continuar usando o serviço de nuvem novamente se a conexão for retomada posteriormente.
Com a configuração de voz híbrida para conversão de texto em fala (vozes), a síntese de nuvem e embarcada é executada em paralelo, e o resultado final é selecionado com base na velocidade de resposta. O melhor resultado é avaliado novamente em cada nova solicitação de síntese.
Fala em nuvem
Para o serviço de reconhecimento de fala na nuvem, use o objeto SpeechConfig, conforme mostrado no guia de início rápido de fala para texto e guia de início rápido de texto para fala. Para executar os quickstarts para fala incorporada, você pode substituir SpeechConfig por EmbeddedSpeechConfig ou HybridSpeechConfig. A maioria dos outros códigos de síntese e reconhecimento de fala são os mesmos, seja usando a nuvem, a inserção ou a configuração híbrida.
Funcionalidades de vozes embutidas
Para vozes inseridas, é essencial observar que determinadas marcas SSML (linguagem de marcação de síntese de fala) podem não ter suporte no momento devido a diferenças na estrutura do modelo. Para obter informações detalhadas sobre as marcas SSML sem suporte, consulte a tabela a seguir.
| Nível 1 | Nível 2 | Subvalores | Suporte para NTTS embarcado |
|---|---|---|---|
| Áudio | Src | Não | |
| indicador | Sim | ||
| interromper | Força | Sim | |
| Tempo | Sim | ||
| Silêncio | tipo | Inicial, Final, Precisão de Vírgula, etc. | Não |
| Valor | Não | ||
| Ênfase | nível | Não | |
| Lang | Não | ||
| léxico | Uri | Sim | |
| Matemática | Não | ||
| msttsaudioduration | Valor | Não | |
| msttsbackgroundaudio | Src | Não | |
| Volume | Não | ||
| Fadein | Não | ||
| desvanecimento | Não | ||
| msttsexpress-as | estilo | Sim1 | |
| styledegree | Não | ||
| função | Não | ||
| msttssilence | Não | ||
| msttsviseme | tipo | redlips_front, FacialExpression | Não |
| P | Sim | ||
| Fonema | Alfabeto | ipa, sapi, ups, etc. | Sim |
| pH | Sim | ||
| Prosódia | Contorno | Suporte ao nível de frases, nível de palavra apenas nos idiomas en-US e zh-CN | Sim |
| Tom / Inclinação / Argumento de venda / Apresentação / Proposta | Sim | ||
| alcance | Sim | ||
| Velocidade | Sim | ||
| Volume | Sim | ||
| s | Sim | ||
| say-as | interpretar como | caracteres, ortografia, número_dígito, data etc. | Sim |
| Formato | Sim | ||
| Detalhe | Sim | ||
| Sub | alias | Sim | |
| Falar | Sim | ||
| Voz | Não |
1 O msttsexpress-as estilo tem suporte apenas para a en-US-JennyNeural voz.