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.
O Reconhecimento de Fala é uma tecnologia de conversão de fala em texto baseada em IA no dispositivo que transcreve áudio falado em texto em tempo real ou de arquivos pré-gravados. Ao executar totalmente no dispositivo, ele fornece transcrição de baixa latência sem exigir uma conexão de rede ou enviar dados de áudio para a nuvem. Assim como acontece com todos os modelos de IA, a saída da transcrição pode nem sempre ser precisa e deve ser validada para casos críticos de uso.
Adicionar recursos de reconhecimento de fala ao seu aplicativo habilita cenários, incluindo o seguinte:
- Transcrição em tempo real e legendas para reuniões e reprodução de mídia
- Anotações e ditado controlados por voz
- Recursos de acessibilidade para usuários que dependem da entrada de fala
- Transcrição de arquivos de áudio gravados, como entrevistas ou palestras
- Comandos de voz e interação sem usar as mãos em aplicativos para desktop
A API dá suporte a dois modos de operação:
- Reconhecimento em lote: transcreva um arquivo de áudio completo de uma só vez, ideal para conteúdo pré-gravado.
- Reconhecimento de streaming: transcrição contínua em tempo real de um microfone ou fluxo de áudio, fornecendo resultados à medida que as frases são reconhecidas.
Você pode usar SpeechRecognitionModel para transcrever fala de arquivos de áudio ou fluxos de áudio em tempo real no dispositivo.
Para detalhes da API, consulte a referência da API para recursos de fala com IA.
Para obter detalhes de moderação de conteúdo, consulte Segurança de conteúdo com APIs de IA generativas.
Importante
Requisitos de manifesto do pacote: para usar APIs de imagem de IA do Windows, seu aplicativo deve ser empacotado como um pacote MSIX com a systemAIModels funcionalidade declarada em seu Package.appxmanifest. Além disso, verifique se o atributo do manifesto está configurado para uma versão recente do MaxVersionTested Windows (por exemplo, 10.0.26226.0 ou posterior) para suportar adequadamente os recursos de IA do Windows. O uso de valores mais antigos pode causar erros "Não declarados por aplicativo" ao carregar o modelo.
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
</Dependencies>
Pré-requisitos
- Versão do Windows: Windows 11, versão 24H2 (build 26100) ou posterior
- Versão do WinAppSDK: Versão 1.7.1 ou posterior
- Hardware: PC Copilot+ com uma NPU, ou qualquer PC com Windows que atenda às especificações de CPU recomendadas
Hardware com suporte
O Reconhecimento de Fala é executado no seguinte hardware:
| Hardware | Status | Detalhes |
|---|---|---|
| NPU (Copilot+ PC) | ✅ Disponível | Melhor desempenho. O modelo é pré-instalado. Consulte Copilot+ PCs guia do desenvolvedor. |
| CPU | ✅ Disponível (opcional, removível) | O modelo não está pré-instalado – consulte a disponibilidade e o download do modelo. Melhor em dispositivos que atendem às especificações recomendadas da CPU. |
| GPU | ❌ Sem suporte | O Reconhecimento de Fala não está disponível na GPU. |
Note
A seleção de hardware é automática. Em um Copilot+ PC com uma NPU, o Reconhecimento de Fala sempre é executado na NPU. Em dispositivos não Copilot+, ele é executado na CPU automaticamente — não há nenhum desenvolvedor ou usuário final aceitando selecionar a CPU em um dispositivo Copilot+. Isso corresponde ao padrão usado por outras APIs de IA do Windows; consulte Hardware compatível para a visão geral entre APIs.
Especificações recomendadas da CPU
O Reconhecimento de Fala funcionará em qualquer CPU em que o restante das APIs de IA do Windows funcione, mas a qualidade e a latência da transcrição em tempo real dependem da CPU hospedeira.
Para um bom desempenho da CPU, tenha como alvo dispositivos que atendam a todas as seguintes especificações recomendadas:
- 4 ou mais núcleos físicos
- 3 GHz ou relógio base superior
- 32 MB ou mais de cache L3
Essas são recomendações, não mínimos rígidos – a API ainda tentará transcrever em dispositivos de especificação inferior. Aplicativos destinados a uma ampla gama de CPUs podem usar a mesma verificação de CPU em tempo de execução mostrada para o VSR — consulte Especificações de CPU recomendadas para VSR para ver o exemplo em C# usando System.Management (WMI). Use o resultado para orientar as escolhas de UX, como definir o reconhecimento em lote como padrão em hardware no limite ou ocultar a opção de transmissão ao vivo.
Disponibilidade e download do modelo
Em Copilot+ PCs o modelo de reconhecimento de fala é preinstalado na NPU. Em dispositivos somente CPU, o modelo não é pré-instalado – ele é baixado sob demanda na primeira vez que seu aplicativo chama EnsureReadyAsync. O download é executado em segundo plano por meio de Windows Update. Os usuários finais também podem remover o modelo posteriormente para recuperar o espaço em disco.
Esse comportamento corresponde ao ciclo de vida do modelo usado por outros modelos opcionais de IA Windows – seu aplicativo deve lidar com o caso "ainda não instalado" explicitamente em vez de assumir que o modelo está presente.
Padrão de UX recomendado
Como o modelo de reconhecimento de fala é baixado sob demanda em dispositivos somente CPU, mostre uma caixa de diálogo de confirmação antes de chamar EnsureReadyAsync para que o usuário possa consentir com o download em segundo plano. Um padrão típico:
Chame GetReadyState e faça a ramificação com base no AIFeatureReadyState retornado:
-
Ready— o modelo está instalado; Prosseguir. -
NotReadyouEnsureNeeded— mostre sua caixa de diálogo de consentimento (veja abaixo), em seguida, ligueEnsureReadyAsyncapenas se o usuário concordar. -
NotSupportedOnCurrentSystem— o dispositivo não atende aos requisitos no hardware com suporte. Ofereça uma experiência de fallback (por exemplo, Speech Recognition via Windows SDK ou um serviço baseado em nuvem) e, quando apropriado, explam os requisitos de hardware para que o usuário possa tomar uma decisão de atualização informada.
-
Na caixa de diálogo de consentimento, explique:
- Um modelo opcional de reconhecimento de fala será baixado.
- O download ocorre em segundo plano por meio de Windows Update.
- O usuário pode monitorar o progresso do download em Settings>Windows Update.
- Posteriormente, o usuário poderá remover o modelo nosComponentes de IA do> de > se ele não quiser mais.
Dica
Em cadeias de caracteres voltadas para o usuário (texto da caixa de diálogo, mensagens de status), consulte o modelo como o "modelo de reconhecimento de fala" ou "modelo de IA opcional" em vez do nome do modelo subjacente. A maioria dos usuários finais não está familiarizada com nomes de marca e termos genéricos comunicam a finalidade com mais clareza.
Enquanto
EnsureReadyAsyncestiver em andamento, mostre um indicador de progresso em seu aplicativo. Consulte Introdução às APIs de IA do Windows para ver o padrão de interface do usuário de carregamento.
Depois que o modelo é instalado
O modelo permanece no dispositivo até que o usuário o remova. Os usuários gerenciam modelos instalados, incluindo o modelo de reconhecimento de fala, emComponentes de IA>>. Se o usuário remover o modelo posteriormente, na próxima chamada do aplicativo para GetReadyState, será retornado NotReady ou EnsureNeeded, e o fluxo de consentimento + download deverá ser repetido.
Reconhecimento em lote de um arquivo de áudio
Use o reconhecimento em lote para transcrever um arquivo de áudio completo. Essa abordagem é ideal para conteúdo de áudio pré-gravado.
- Chame GetReadyState e aguarde a conclusão do EnsureReadyAsync com êxito para confirmar se o SpeechRecognitionModel está pronto.
- Depois que o modelo estiver pronto, chame TryCreateAsync para criar uma instância de um objeto SpeechRecognitionModel.
- Crie uma instância batchRecognition com o SpeechRecognitionModel.
- Chame RecognizeFromFile com o caminho para o arquivo de áudio a ser transcrevido.
using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Speech;
if (SpeechRecognitionModel.GetReadyState() != AIFeatureReadyState.Ready)
{
await SpeechRecognitionModel.EnsureReadyAsync();
}
var speechModelResult = await SpeechRecognitionModel.TryCreateAsync();
if (speechModelResult.SpeechModel == null)
{
throw new InvalidOperationException(
$"Failed to create SpeechRecognitionModel: {speechModelResult.ExtendedError}");
}
var speechModel = speechModelResult.SpeechModel;
var batchRecognition = new BatchRecognition(speechModel);
string transcription = await batchRecognition.RecognizeFromFile("path/to/audio.wav");
Console.WriteLine($"Transcription: {transcription}");
Reconhecimento por streaming de uma fonte de áudio em tempo real
Use o reconhecimento de streaming para transcrever áudio em tempo real de um microfone ou outro dispositivo de entrada de áudio. Essa abordagem fornece resultados finais à medida que as frases completas são reconhecidas.
- Chame GetReadyState e aguarde a conclusão do EnsureReadyAsync com êxito para confirmar se o SpeechRecognitionModel está pronto.
- Depois que o modelo estiver pronto, chame TryCreateAsync para criar uma instância de um objeto SpeechRecognitionModel.
- Crie um AudioConfiguration usando FromAudioDevice com o nome do dispositivo de microfone.
- Crie uma instância de StreamingRecognition com AudioConfiguration e SpeechRecognitionModel.
- Assine o evento Reconhecido para receber os resultados da transcrição.
- Chame StartContinuousRecognitionAsync para iniciar a transcrição.
- Chame StopContinuousRecognition quando terminar.
using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Speech;
if (SpeechRecognitionModel.GetReadyState() != AIFeatureReadyState.Ready)
{
await SpeechRecognitionModel.EnsureReadyAsync();
}
var speechModelResult = await SpeechRecognitionModel.TryCreateAsync();
if (speechModelResult.SpeechModel == null)
{
throw new InvalidOperationException(
$"Failed to create SpeechRecognitionModel: {speechModelResult.ExtendedError}");
}
var speechModel = speechModelResult.SpeechModel;
var audioConfig = AudioConfiguration.FromAudioDevice(microphoneDeviceName);
var streamingRecognition = new StreamingRecognition(audioConfig, speechModel);
// Subscribe to receive transcription results as phrases are recognized
streamingRecognition.Recognized += (sender, args) =>
{
Console.WriteLine($"Recognized: {args.Text}");
};
// Start real-time recognition
await streamingRecognition.StartContinuousRecognitionAsync();
// ... recognition is active, audio is being transcribed in real-time ...
// Stop recognition when done
streamingRecognition.StopContinuousRecognition();
Confira também
- Sussurrar por meio do Foundry Local (Windows 10+, novo modelo, o desempenho varia, não está disponível em todos os dispositivos)
- Reconhecimento de Fala por meio do SDK do Windows (Windows 10+, modelo mais antigo, mas disponível em todos os dispositivos)
- Exemplos de API de IA do Windows
AVISOS E INFORMAÇÕES DE MODELO DE TERCEIROS
Essa API usa componentes do modelo OpenAI Whisper , que é fornecido sob a seguinte licença:
Licença MIT
Copyright (c) 2022 OpenAI
A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e ficheiros de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de utilização, cópia, modificação, impressão, publicação, distribuição, sublicense e/ou venda de cópias do Software e para permitir que as pessoas a quem o Software está fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias e partes substanciais do Software.
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO LIMITADA A GARANTIAS DE COMERCIALIZAÇÃO, DE AJUSTE A UMA FINALIDADE EM PARTICULAR OU DE NÃO VIOLAÇÃO. EM NENHUMA HIPÓTESE OS AUTORES OU OS DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO CONTRATUAL, ATO ILÍCITO OU DE OUTRA NATUREZA, DECORRENTE DE, RESULTANTE DE OU RELACIONADA COM O SOFTWARE OU COM O USO OU OUTRAS OPERAÇÕES NO SOFTWARE.