Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il riconoscimento vocale è una tecnologia di conversione della voce in testo sul dispositivo, basata sull'intelligenza artificiale, che trascrive l'audio parlato in testo in tempo reale o a partire da file preregistrati. Eseguendo interamente su dispositivo, fornisce la trascrizione a bassa latenza senza richiedere una connessione di rete o inviare dati audio al cloud. Come per tutti i modelli di intelligenza artificiale, l'output della trascrizione potrebbe non essere sempre accurato e deve essere convalidato per i casi d'uso critici.
L'aggiunta di funzionalità di riconoscimento vocale all'app consente scenari inclusi i seguenti:
- Sottotitoli e sottotitoli in tempo reale per riunioni o riproduzioni multimediali
- Creazione di note tramite voce e dettatura
- Funzionalità di accessibilità per gli utenti che si basano sull'input vocale
- Trascrizione di file audio registrati, ad esempio interviste o conferenze
- Comandi vocali e interazione senza mani nelle applicazioni desktop
L'API supporta due modalità di funzionamento:
- Riconoscimento batch: trascrivere un file audio completo in un unico passaggio, ideale per il contenuto preregistrato.
- Riconoscimento dello streaming: trascrizione in tempo reale continua da un microfono o da un flusso audio, fornendo risultati come frasi riconosciute.
È possibile usare SpeechRecognitionModel per trascrivere la voce da file audio o flussi audio in tempo reale nel dispositivo.
Per informazioni dettagliate sull'API, vedere Riferimento API per le funzionalità di Riconoscimento vocale per intelligenza artificiale.
Per informazioni dettagliate sulla moderazione dei contenuti, vedere Sicurezza dei contenuti con API di intelligenza artificiale generative.
Importante
Requisiti del manifesto del pacchetto: per usare le API di creazione dell'immagine di Intelligenza artificiale di Windows, l'app deve essere inserita in un pacchetto MSIX con la systemAIModels funzionalità dichiarata in Package.appxmanifest. Assicurarsi inoltre che l'attributo del MaxVersionTested manifesto sia impostato su una versione di Windows recente (ad esempio, 10.0.26226.0 o versioni successive) per supportare correttamente le funzionalità di Intelligenza artificiale Windows. L'uso di valori meno recenti può causare errori "Non dichiarati dall'app" durante il caricamento del modello.
<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>
Prerequisiti
- Versione di Windows: Windows 11, versione 24H2 (build 26100) o successiva
- Versione di WinAppSDK: Versione 1.7.1 o successiva
- Hardware: Copilot+ PC con una NPU, o qualsiasi PC Windows che soddisfi le specifiche consigliate della CPU
Hardware supportato
Riconoscimento vocale viene eseguito nell'hardware seguente:
| Hardware | Condizione | dettagli |
|---|---|---|
| NPU (Copilot+ PC) | ✅ Disponibile | Prestazioni migliori. Il modello è preinstallato. Vedere Copilot+ PCs developer guide. |
| CPU (unità centrale di elaborazione) | ✅ Disponibile (facoltativo, rimovibile) | Il modello non è preinstallato. Vedere Disponibilità e download del modello. Ideale nei dispositivi che soddisfano le specifiche della CPU consigliate. |
| GPU (Unità di Elaborazione Grafica) | ❌ Non supportato | Riconoscimento vocale non è disponibile nella GPU. |
Note
La selezione hardware è automatica. In un Copilot+ PC con una NPU, il riconoscimento vocale viene sempre eseguito sulla NPU. Sui dispositivi non Copilot+, viene eseguito automaticamente sulla CPU: non è prevista alcuna possibilità di scelta esplicita da parte di sviluppatori o utenti finali per selezionare la CPU su un dispositivo Copilot+. Questo corrisponde al modello usato da altre API di intelligenza artificiale Windows. Vedere Hardware supportato per la visualizzazione tra API.
Specifiche consigliate della CPU
Il riconoscimento vocale verrà eseguito su qualsiasi CPU su cui vengono eseguite anche le altre API di Windows AI, ma la qualità e la latenza della trascrizione in tempo reale dipendono dalla CPU host.
Per ottenere buone prestazioni della CPU, scegli come target dispositivi che soddisfano tutte le seguenti specifiche consigliate:
- 4 o più core fisici
- 3 GHz o un clock di base superiore
- 32 MB o più cache L3
Si tratta di raccomandazioni, non minimi rigidi: l'API tenterà comunque di trascrivere nei dispositivi con specifiche inferiori. Le app destinate a un'ampia gamma di CPU possono usare lo stesso controllo della CPU in fase di esecuzione mostrato per VSR: vedi Specifiche consigliate della CPU per VSR per l'esempio C# che usa System.Management (WMI). Usare il risultato per guidare le scelte di UX, ad esempio impostando come predefinito il riconoscimento in batch su hardware al limite o nascondendo il punto di accesso allo streaming live.
Disponibilità e download del modello
In Copilot+ PCs il modello di riconoscimento vocale è preinstallato nella NPU. Sui dispositivi con sola CPU il modello non è preinstallato — viene scaricato su richiesta la prima volta che l'app chiama EnsureReadyAsync. Il download viene eseguito in background tramite Windows Update. Gli utenti finali possono anche rimuovere il modello in un secondo momento per recuperare spazio su disco.
Questo comportamento corrisponde al ciclo di vita del modello usato da altri modelli facoltativi di intelligenza artificiale Windows. L'app deve gestire in modo esplicito il caso "non installato" anziché presumere che il modello sia presente.
Modello di esperienza utente consigliato
Poiché il modello di riconoscimento vocale viene scaricato su richiesta su dispositivi solo CPU, visualizzare una finestra di dialogo di conferma prima di chiamare EnsureReadyAsync in modo che l'utente possa fornire il consenso per il download in background. Modello tipico:
Chiama GetReadyState e dirama il flusso in base al valore AIFeatureReadyState restituito:
-
Ready— il modello è installato; Procedere. -
NotReadyoppureEnsureNeeded: mostra la finestra di dialogo di consenso (vedere di seguito), quindi chiamaEnsureReadyAsyncsolo se l'utente accetta. -
NotSupportedOnCurrentSystem— il dispositivo non soddisfa i requisiti in Hardware supportato. Offrire un'esperienza di fallback (ad esempio, Speech Recognition via Windows SDK o un servizio basato sul cloud) e, quando appropriato, presentare i requisiti hardware in modo che l'utente possa prendere una decisione di aggiornamento informato.
-
Nella finestra di dialogo di consenso spiegare:
- Verrà scaricato un modello di riconoscimento vocale facoltativo.
- Il download avviene in background tramite Windows Update.
- L'utente può monitorare lo stato di avanzamento del download in Settings>Windows Update.
- L'utente può successivamente rimuovere il modello in Impostazioni Componenti>di intelligenza artificiale di> se non lo vuole più.
Suggerimento
Nelle stringhe rivolte all'utente (testo della finestra di dialogo, messaggi di stato), fare riferimento al modello come "modello di riconoscimento vocale" o "modello di intelligenza artificiale facoltativo" anziché al nome del modello sottostante. La maggior parte degli utenti finali non ha familiarità con i nomi dei marchi e i termini generici comunicano più chiaramente lo scopo.
Mentre
EnsureReadyAsyncè in corso, mostra un indicatore di stato nella tua app. Vedere Introduzione alle API di intelligenza artificiale Windows per il modello di caricamento dell'interfaccia utente.
Dopo l'installazione del modello
Il modello rimane sul dispositivo fino a quando l'utente non lo rimuove. Gli utenti gestiscono i modelli installati, incluso il modello di riconoscimento vocale, in Impostazioni>Componenti di intelligenza artificiale>. Se in un secondo momento l'utente rimuove il modello, la chiamata successiva dell'app a GetReadyState restituisce NotReady o EnsureNeeded e il flusso di consenso e download deve essere ripetuto.
Riconoscimento batch da un file audio
Usare il riconoscimento batch per trascrivere un file audio completo. Questo approccio è ideale per il contenuto audio preregistrato.
- Chiamare GetReadyState e attendere il completamento di EnsureReadyAsync per verificare che SpeechRecognitionModel sia pronto.
- Dopo aver preparato il modello, chiamare TryCreateAsync per istanziare un oggetto SpeechRecognitionModel.
- Creare un'istanza di BatchRecognition con il modello SpeechRecognitionModel.
- Chiama RecognizeFromFile con il percorso del file audio da trascrivere.
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}");
Riconoscimento in streaming da un'origine audio in tempo reale
Usare il riconoscimento di streaming per trascrivere l'audio in tempo reale da un microfono o da un altro dispositivo di input audio. Questo approccio fornisce risultati finali quando vengono riconosciute frasi complete.
- Chiamare GetReadyState e attendere il completamento di EnsureReadyAsync per verificare che SpeechRecognitionModel sia pronto.
- Dopo che il modello è pronto, chiamare TryCreateAsync per creare un'istanza di SpeechRecognitionModel.
- Creare una AudioConfiguration usando FromAudioDevice con il nome del dispositivo del microfono.
- Creare un'istanza di StreamingRecognition con AudioConfiguration e il SpeechRecognitionModel.
- Sottoscrivi l'evento Recognized per ricevere i risultati di trascrizione.
- Chiama StartContinuousRecognitionAsync per iniziare la trascrizione.
- Chiama StopContinuousRecognition al termine.
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();
Vedere anche
- Whisper via Foundry Local (Windows 10+, nuovo modello, prestazioni varia, non disponibile in tutti i dispositivi)
- Riconoscimento vocale tramite Windows SDK (Windows 10+, modello meno recente, ma disponibile in tutti i dispositivi)
- Esempi di API windows per intelligenza artificiale
AVVISI E INFORMAZIONI SUI MODELLI DI TERZE PARTI
Questa API usa i componenti del modello OpenAI Whisper , fornito con la licenza seguente:
Licenza MIT
Copyright (c) 2022 OpenAI
Con il presente documento viene concessa l'autorizzazione, a titolo gratuito, a chiunque entri in possesso di una copia di questo software e dei file della documentazione associati (il "Software"), a utilizzare il Software senza restrizioni, inclusi, senza limitazioni, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software e di consentire alle persone a cui viene fornito il Software di fare altrettanto, con le seguenti condizioni:
Le informazioni sul copyright precedenti e questa notifica di consenso devono essere incluse in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIE DI ALCUN TIPO, ESPLICITE O IMPLICITE, COMPRESE, TRA LE ALTRE, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO SPECIFICO O DI NON VIOLAZIONE DI DIRITTI ALTRUI. GLI AUTORI O I PROPRIETARI DEL COPYRIGHT NON SARANNO IN ALCUN CASO RITENUTI RESPONSABILI PER QUALSIASI RIVENDICAZIONE, DANNO O ALTRA RESPONSABILITÀ, SIA NELL'ESERCIZIO DEL CONTRATTO, CHE PER ILLECITO CIVILE O ALTRA AZIONE COLPOSA, IN CONNESSIONE CON IL SOFTWARE O CON L'USO O ALTRE ATTIVITÀ RELATIVE AL SOFTWARE.