Windows 10: Novità dei driver audio

Questo argomento fornisce un riepilogo generale delle novità dell'audio per Windows 10.

Riepilogo delle funzionalità

Ecco le nuove funzionalità audio in Windows 10.

Miglioramenti audio a bassa latenza

La latenza audio è il ritardo tra quel momento in cui viene creato il suono e quando viene sentito. La latenza audio bassa è molto importante per diversi scenari chiave, ad esempio i seguenti.

  • Pro Audio
  • Musica creazione e combinazione
  • Comunicazioni come Skype
  • Realtà virtuale e aumentata
  • Games

La latenza totale di un dispositivo è la somma delle latenze dei componenti seguenti:

  • Sistema operativo
  • Oggetti di elaborazione audio
  • Audio Driver
  • Audio Hardware

Nel lavoro di Windows 10 è stato eseguito per ridurre la latenza nel sistema operativo. Senza modifiche ai driver, le applicazioni in Windows 10 avranno una latenza inferiore di 4.5-16 ms. Inoltre, se il driver è stato aggiornato per sfruttare i nuovi DDI a bassa latenza che usano buffer di piccole dimensioni per elaborare i dati audio, la latenza verrà ridotta ancora di più. Se un driver supporta buffer audio di 3 ms, la latenza del round trip è di circa 10 ms.

Diagramma che mostra lo stack audio a bassa latenza con app, driver del motore audio e componenti hardware.

Lo stack audio supporta più dimensioni di pacchetti e ridimensionamento dinamico dei pacchetti, per ottimizzare il compromesso tra latenza e potenza in base allo scenario dell'utente. Inoltre, i flussi saranno classificati in ordine di priorità, per garantire che i flussi con priorità elevata (ad esempio, le chiamate telefoniche) abbiano risorse dedicate.

Per consentire ai driver audio di supportare bassa latenza, Windows 10 offre le 3 nuove funzionalità seguenti:

  1. [Obbligatorio] Dichiarare le dimensioni minime del buffer supportate in ogni modalità.
  2. [Facoltativo, ma consigliato] Migliorare il coordinamento per il flusso di dati tra il driver e il sistema operativo.
  3. [Facoltativo, ma consigliato] Registrare le risorse del driver (interrupt, thread), in modo che possano essere protette dal sistema operativo in scenari a bassa latenza. Per altre informazioni, vedere Audio a bassa latenza.

Modalità di elaborazione dei segnali e categorie audio

Modalità di elaborazione dei segnali

I driver dichiarano le modalità di elaborazione dei segnali audio supportate per ogni dispositivo.

Le categorie audio (selezionate dalle applicazioni) vengono mappate alle modalità audio (definite dai driver). Windows definisce sette modalità di elaborazione dei segnali audio. Gli OEM e gli IHD possono determinare le modalità da implementare. Le modalità sono riepilogate nella tabella illustrata di seguito.

Modalità Rendering/acquisizione Descrizione
Raw Entrambi La modalità non elaborata specifica che non deve essere applicata alcuna elaborazione del segnale al flusso. Un'applicazione può richiedere un flusso non elaborato completamente intatto ed eseguire la propria elaborazione del segnale.
Default Entrambi Questa modalità definisce l'elaborazione audio predefinita.
Film* Render Riproduzione audio filmato
Media* Entrambi Musica riproduzione audio (impostazione predefinita per la maggior parte dei flussi multimediali)
Discorso* Capture Acquisizione vocale umana (ad esempio, input per Cortana)
Comunicazioni* Entrambi Rendering e acquisizione VOIP (ad esempio Skype, Lync)
Notifica* Render Suonerie, allarmi, avvisi e così via.

I driver di dispositivo audio devono supportare almeno la modalità Raw o Default. Il supporto di modalità aggiuntive è facoltativo.

Modalità dedicate per la sintesi vocale, il film, la musica e le comunicazioni. I driver audio saranno in grado di definire diversi tipi di formati audio ed elaborazione, in base al tipo di flusso.

Categorie audio

La tabella seguente mostra le categorie audio in Windows 10.

Per informare il sistema sull'utilizzo di un flusso audio, le applicazioni hanno la possibilità di contrassegnare il flusso con una categoria di flusso audio specifica. In Windows 10 sono disponibili nove categorie di flussi audio.

Categoria Descrizione
Film* Film, video con finestra di dialogo (sostituisce ForegroundOnlyMedia)
Media* Categoria predefinita per la riproduzione multimediale (sostituisce BackgroundCapableMedia)
Game Chat* Comunicazione nel gioco tra utenti (nuova categoria in Windows 10)
Discorso* Input vocale (ad esempio assistente personale) e output (ad esempio, app di spostamento) (nuova categoria in Windows 10)
Comunicazioni VOIP, chat in tempo reale
Avvisi Allarme, tono circolare, notifiche
Effetti sonori Beeps, dings, ecc
Game Media Nella musica del gioco
Effetti del gioco Palle rimbalzano, suoni motore auto, proiettili, ecc.
Altro Flussi senza categoria

* Novità in Windows 10.

Per altre informazioni, vedere Modalità di elaborazione del segnale audio e Architettura degli oggetti di elaborazione audio.

Effetti APO offloaded hardware

Windows 10 supporta effetti APO scaricati dall'hardware. Le API possono essere caricate sopra il pin di offload. Ciò consente di eseguire l'elaborazione audio sia nel software che nell'hardware. Inoltre, l'elaborazione può cambiare in modo dinamico. Alcune o tutte le elaborazioni possono essere spostate dall'APO software al DSP quando sono presenti risorse hardware sufficienti e quindi spostate nuovamente nell'APO software quando il carico nel DSP aumenta.

Per altre informazioni, vedere Implementazione di effetti APO caricati hardware.

Attivazione vocale cortana - Riattivazione vocale

Cortana, la tecnologia dell'assistente personale è stata illustrata per la prima volta alla Microsoft BUILD Developer Conference nel 2013. L'attivazione vocale è una funzionalità che consente agli utenti di richiamare un motore di riconoscimento vocale da vari stati di alimentazione del dispositivo pronunciando una frase specifica : "Ehi Cortana". La funzionalità di attivazione vocale di "Hey Cortana" (VA) consente agli utenti di interagire rapidamente con un'esperienza (ad esempio, Cortana) al di fuori del contesto attivo (ad esempio, quello che è attualmente sullo schermo) usando la voce. La funzionalità è destinata agli scenari quando lo schermo è spento, inattiva o quando è completamente attivo. Se l'hardware supporta il buffering, gli utenti possono quindi concatenare la frase chiave e la frase di comando. Ciò migliora l'esperienza vocale end-to-end per l'utente. Per altre informazioni, vedere Attivazione vocale.

Driver universali di Windows per audio

Windows 10 supporta un modello di driver che funziona per PC e 2:1 e Windows 10 per telefoni e tablet di piccole dimensioni. Ciò significa che IHD possono sviluppare il driver in una sola piattaforma e che il driver funziona in tutti i dispositivi (desktop, portatili, tablet, telefoni). Il risultato è una riduzione del tempo di sviluppo e dei costi.

Per sviluppare driver audio universali, usare gli strumenti seguenti:

  1. Visual Studio 2015: le nuove impostazioni del driver consentono di impostare "Piattaforma di destinazione" su "Universale" per creare un driver multipiattaforma.
  2. APIValidator: si tratta di uno strumento WDK che controlla se il driver è universale ed evidenzia le chiamate che devono essere aggiornate.
  3. Esempi audio in GitHub: sysvad e SwapAPO sono stati convertiti in driver universali. Per altre informazioni e puntatori al codice di esempio di GitHub, vedere Driver di Windows universali per audio.

Gestione risorse per driver audio

Una sfida con la creazione di un'esperienza audio ottimale in un dispositivo mobile a basso costo è che alcuni dispositivi hanno diversi vincoli di concorrenza. Ad esempio, è possibile che il dispositivo possa riprodurre fino a 6 flussi audio simultaneamente e supporti solo 2 flussi offload. Quando è presente una telefonata attiva su un dispositivo mobile, è possibile che il dispositivo supporti solo 2 flussi audio. Quando il dispositivo acquisisce audio, il dispositivo può riprodurre fino a 4 flussi audio.

Windows 10 include un meccanismo per esprimere i vincoli di concorrenza per garantire che i flussi audio ad alta priorità e le chiamate telefoniche cellulare saranno in grado di riprodurre. Se il sistema non dispone di risorse sufficienti, i flussi con priorità bassa vengono terminati. Questo meccanismo è disponibile solo in telefoni e tablet non su desktop o portatili.

Per altre informazioni, vedere Audio Hardware Resource Management.For more information, see Audio Hardware Resource Management.

Ribilanciamento PNP per i driver audio

Il ribilanciamento PNP viene usato in determinati scenari PCI in cui le risorse di memoria devono essere riallocate. In tal caso, alcuni driver vengono scaricati e quindi ricaricati in posizioni di memoria diverse per creare spazio di memoria contiguo libero. Il ribilanciamento può essere attivato in due scenari principali:

  1. Hotplug PCI: un utente collega un dispositivo e il bus PCI non dispone di risorse sufficienti per caricare il driver per il nuovo dispositivo. Alcuni esempi di dispositivi che rientrano in questa categoria includono l'Archiviazione Unicode, USB-C e NVME. In questo scenario, le risorse di memoria devono essere riorganizzato e consolidato (ribilanciato) per supportare l'aggiunta di altri dispositivi.
  2. BAR ridimensionabili pci: dopo che un driver per un dispositivo è stato caricato correttamente in memoria, richiede risorse aggiuntive. Alcuni esempi di dispositivi includono schede grafiche e dispositivi di archiviazione di fascia alta. Per altre informazioni, vedere Implementare il ribilanciamento PnP per i driver audio PortCls.