Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La reconnaissance vocale est une technologie de reconnaissance vocale basée sur l’IA qui transcrit du contenu audio parlé en texte en temps réel ou à partir de fichiers préenregistrés. En exécutant entièrement sur l’appareil, il fournit une transcription à faible latence sans nécessiter de connexion réseau ou envoyer des données audio au cloud. Comme pour tous les modèles IA, la sortie de transcription peut ne pas toujours être précise et doit être validée pour les cas d’usage critiques.
L’ajout de fonctionnalités de reconnaissance vocale à votre application permet des scénarios, notamment les suivants :
- Sous-titres et sous-titres en temps réel pour les réunions ou la lecture multimédia
- Prise de notes et dictée pilotées par la voix
- Fonctionnalités d’accessibilité pour les utilisateurs qui s’appuient sur l’entrée vocale
- Transcription de fichiers audio enregistrés tels que des entrevues ou des conférences
- Commandes vocales et interaction mains libres dans les applications de bureau
L’API prend en charge deux modes d’opération :
- Reconnaissance par lots : transcrire un fichier audio complet en une seule passe, idéal pour le contenu préenregistré.
- Reconnaissance vocale en continu : transcription continue en temps réel à partir d’un microphone ou d’un flux audio, avec des résultats renvoyés au fur et à mesure que des phrases sont reconnues.
Vous pouvez utiliser SpeechRecognitionModel pour transcrire la voix à partir de fichiers audio ou de flux audio en temps réel sur l’appareil.
Pour plus d’informations sur l’API, consultez la référence d’API pour les fonctionnalités AI Speech.
Pour plus de détails sur la modération du contenu, voir Sécurité du contenu avec les API d’IA générative.
Important
Conditions requises pour le manifeste de package : pour utiliser les API d’imagerie Windows AI, votre application doit être empaquetée en tant que package MSIX avec la systemAIModels fonctionnalité déclarée dans votre Package.appxmanifest. En outre, vérifiez que l’attribut de MaxVersionTested votre manifeste est défini sur une version récente de Windows (par exemple, 10.0.26226.0 ou ultérieure) pour prendre correctement en charge les fonctionnalités d’IA Windows. L’utilisation de valeurs antérieures peut entraîner des erreurs « Non déclarées par application » lors du chargement du modèle.
<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>
Prerequisites
- Version de Windows : Windows 11, version 24H2 (build 26100) ou version ultérieure
- Version de WinAppSDK : Version 1.7.1 ou ultérieure
- Configuration matérielle : PC Copilot+ doté d’un NPU, ou tout PC Windows répondant à la configuration processeur recommandée
Matériel pris en charge
La reconnaissance vocale s’exécute sur le matériel suivant :
| Matériel | Status | Détails |
|---|---|---|
| NPU (Copilot+ PC) | ✅ Disponible | Meilleures performances. Le modèle est préinstallé. Consultez Copilot+ PCs guide du développeur. |
| CPU (Unité centrale de traitement) | ✅ Disponible (facultatif, amovible) | Le modèle n’est pas préinstallé . Consultez la disponibilité et le téléchargement du modèle. Mieux sur les appareils répondant aux spécifications de processeur recommandées. |
| Unité de traitement graphique (GPU) | ❌ Non pris en charge | La reconnaissance vocale n’est pas disponible sur GPU. |
Note
La sélection matérielle est automatique. Sur un Copilot+ PC avec un NPU, la reconnaissance vocale s’exécute toujours sur le NPU. Sur les appareils non-Copilot+, il s’exécute automatiquement sur le processeur ; il n’existe aucune option permettant au développeur ou à l’utilisateur final de sélectionner le processeur sur un appareil Copilot+. Cela correspond au modèle utilisé par d’autres API IA Windows ; consultez Matériel pris en charge pour la vue inter-API.
Spécifications de processeur recommandées
La reconnaissance vocale s’exécute sur n’importe quel processeur compatible avec les autres API d’IA de Windows, mais la qualité et la latence de la transcription en temps réel dépendent du processeur hôte.
Pour une bonne expérience de processeur, ciblez les appareils qui répondent à toutes les spécifications recommandées suivantes :
- 4 cœurs physiques ou plus
- Horloge de base de 3 GHz ou supérieure
- 32 Mo ou plus du cache L3
Il s’agit de recommandations, pas de minimums durs : l’API tente toujours de transcrire sur des appareils de spécification inférieure. Les applications qui ciblent un large éventail de processeurs peuvent utiliser la même vérification du processeur à l’exécution indiquée pour VSR ; consultez les spécifications de processeur recommandées pour VSR pour l’exemple C# utilisant System.Management (WMI). Utilisez le résultat pour orienter les choix d’expérience utilisateur, par exemple en activant par défaut la reconnaissance par lots sur du matériel aux performances limites ou en masquant le point d’entrée du streaming en direct.
Disponibilité et téléchargement du modèle
Sur Copilot+ PCs le modèle de reconnaissance vocale est préinstallé sur le NPU. Sur les appareils processeur uniquement, le modèle n’est pas préinstallé . Il est téléchargé à la demande la première fois que votre application appelle EnsureReadyAsync. Le téléchargement s’exécute en arrière-plan via Windows Update. Les utilisateurs finaux peuvent également supprimer le modèle ultérieurement pour récupérer de l’espace disque.
Ce comportement correspond au cycle de vie du modèle utilisé par d’autres modèles d’IA facultatifs Windows : votre application doit gérer explicitement le cas « pas encore installé » plutôt que de supposer que le modèle est présent.
Modèle d’expérience utilisateur recommandé
Étant donné que le modèle de reconnaissance vocale est téléchargé à la demande sur les appareils processeur uniquement, affichez une boîte de dialogue de confirmation avant d’appeler EnsureReadyAsync afin que l’utilisateur puisse donner son consentement au téléchargement en arrière-plan. Modèle classique :
Appelez GetReadyState et effectuez un branchement en fonction de AIFeatureReadyState renvoyé :
-
Ready— le modèle est installé ; Procéder. -
NotReadyouEnsureNeeded: affichez votre boîte de dialogue de consentement (voir ci-dessous), puis appelezEnsureReadyAsyncuniquement si l’utilisateur accepte. -
NotSupportedOnCurrentSystem— l’appareil ne répond pas aux exigences du matériel pris en charge. Offrez une expérience de secours (par exemple, Speech Recognition via Windows SDK ou un service cloud) et, le cas échéant, surfacez la configuration matérielle requise afin que l’utilisateur puisse prendre une décision de mise à niveau éclairée.
-
Dans votre boîte de dialogue de consentement, expliquez :
- Un modèle de reconnaissance vocale facultatif sera téléchargé.
- Le téléchargement se produit en arrière-plan via Windows Update.
- L’utilisateur peut surveiller la progression du téléchargement à Settings>Windows Update.
- L’utilisateur peut ultérieurement supprimer le modèle dans Paramètres>Système>Composants IA s’il n’en veut plus.
Tip
Dans les chaînes orientées utilisateur (texte de boîte de dialogue, messages d’état), reportez-vous au modèle en tant que « modèle de reconnaissance vocale » ou « modèle IA facultatif » au lieu du nom du modèle sous-jacent. La plupart des utilisateurs finaux ne connaissent pas les noms de marque et les termes génériques communiquent plus clairement leur objectif.
Pendant que
EnsureReadyAsyncest en cours, affichez un indicateur de progression dans votre application. Consultez Bien démarrer avec les API d’IA de Windows pour le modèle d’interface utilisateur de chargement.
Une fois le modèle installé
Le modèle reste sur l’appareil jusqu’à ce que l’utilisateur le supprime. Les utilisateurs gèrent les modèles installés — y compris le modèle de reconnaissance vocale — dans Paramètres>Système>Composants IA. Si l’utilisateur supprime ensuite le modèle, le prochain appel de votre application à GetReadyState renvoie NotReady ou EnsureNeeded, et le flux de consentement et de téléchargement doit être répété.
Reconnaissance par lots à partir d’un fichier audio
Utilisez la reconnaissance par lots pour transcrire un fichier audio complet. Cette approche est idéale pour le contenu audio préenregistré.
- Appelez GetReadyState et attendez que EnsureReadyAsync se termine correctement pour confirmer que SpeechRecognitionModel est prêt.
- Une fois le modèle prêt, appelez TryCreateAsync pour instancier un objet SpeechRecognitionModel.
- Créez une instance BatchRecognition avec SpeechRecognitionModel.
- Appelez RecognizeFromFile avec le chemin d’accès au fichier audio à transcrire.
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}");
Diffusion en continu de la reconnaissance à partir d’une source audio en temps réel
Utilisez la reconnaissance de streaming pour transcrire l’audio en temps réel à partir d’un microphone ou d’un autre périphérique d’entrée audio. Cette approche fournit des résultats finaux au fur et à mesure que des expressions complètes sont reconnues.
- Appelez GetReadyState et attendez que EnsureReadyAsync se termine correctement pour confirmer que SpeechRecognitionModel est prêt.
- Une fois le modèle prêt, appelez TryCreateAsync pour instancier un objet SpeechRecognitionModel.
- Créez un AudioConfiguration à l’aide de FromAudioDevice avec le nom du microphone.
- Créez une instance StreamingRecognition avec AudioConfiguration et SpeechRecognitionModel.
- Abonnez-vous à l’événement Reconnu pour recevoir les résultats de transcription.
- Appelez StartContinuousRecognitionAsync pour commencer la transcription.
- Appelez StopContinuousRecognition quand vous avez terminé.
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();
Voir aussi
- Chuchoter via Foundry Local (Windows 10+, nouveau modèle, les performances varient, non disponible sur tous les appareils)
- Reconnaissance vocale via le SDK Windows (Windows 10+, modèle plus ancien, mais disponible sur tous les appareils)
- Exemples d’API Windows AI
AVIS ET INFORMATIONS RELATIFS AUX MODÈLES DE TIERS
Cette API utilise des composants du modèle OpenAI Whisper , qui est fourni sous la licence suivante :
Licence MIT
Copyright (c) 2022 OpenAI
L’autorisation est accordée par les présentes, gratuitement, à toute personne qui obtient une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d’utilisation, de copie, de modification, de fusion, de publication, de distribution, de sous-licence et/ou de vente de copies du Logiciel, et d’autoriser les personnes auxquelles le Logiciel est fourni à le faire, sous réserve des conditions suivantes :
La notification du droit d’auteur ci-dessus et cette notification de permission doivent être incluses dans toutes les copies ou portions substantielles du Logiciel.
LE LOGICIEL EST FOURNI « EN L’ÉTAT », SANS GARANTIE D’AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S’Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D’ADÉQUATION À UN USAGE PARTICULIER ET D’ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D’AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DE TOUT DOMMAGE OU DE TOUTE AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D’UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DU LOGICIEL, DE SON UTILISATION OU D’AUTRES OPÉRATIONS LIÉES À CELUI-CI, OU EN RELATION AVEC CEUX-CI.