Taligenkänning

Taligenkänning är en AI-baserad tal-till-text-teknik på enheten som transkriberar talat ljud till text i realtid eller från förinspelade filer. Genom att köra helt på enheten ger den transkription med låg latens utan att kräva en nätverksanslutning eller skicka ljuddata till molnet. Precis som med alla AI-modeller kanske transkriptionsutdata inte alltid är korrekta och bör valideras för kritiska användningsfall.

Om du lägger till funktioner för taligenkänning i din app kan du använda scenarier, inklusive följande:

  • Textning och undertexter i realtid för möten eller medieuppspelning
  • Röstdriven anteckning och diktering
  • Tillgänglighetsfunktioner för användare som använder röstinmatning
  • Transkription av inspelade ljudfiler som intervjuer eller föreläsningar
  • Röstkommandon och handsfree-interaktion i skrivbordsprogram

API:et stöder två driftlägen:

  • Batchigenkänning: Transkribera en fullständig ljudfil i ett enda pass, perfekt för förinspelat innehåll.
  • Strömningsigenkänning: Kontinuerlig transkription i realtid från en mikrofon eller ljudström, vilket ger resultat när fraser identifieras.

Du kan använda SpeechRecognitionModel för att transkribera tal från ljudfiler eller realtidsljudströmmar på enheten.

Api-information finns i API-referens för AI Speech-funktioner.

Information om innehållsmodereringfinns i Innehållssäkerhet med generativa AI-API:er.

Important

Krav för paketmanifest: Om du vill använda API:er för Windows AI-avbildning måste appen paketeras som ett MSIX-paket med funktionen systemAIModels som deklareras i .Package.appxmanifest Se dessutom till att manifestets MaxVersionTested attribut är inställt på en ny Windows-version (t.ex. 10.0.26226.0 eller senare) för korrekt stöd för Windows AI-funktioner. Om du använder äldre värden kan det orsaka "inte deklarerat av appen"-fel när modellen läses in.

<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>

Förutsättningar

  • Windows-version: Windows 11, version 24H2 (version 26100) eller senare
  • WinAppSDK-version: Version 1.7.1 eller senare
  • Hardware: Copilot+ PC med en NPU, or alla Windows datorer som uppfyller rekommenderade CPU-specifikationer

Maskinvara som stöds

Taligenkänning körs på följande maskinvara:

Hardware Status Detaljer
NPU (Copilot+ PC) ✅ Tillgänglig Bästa prestanda. Modellen är förinstallerad. Se utvecklarguiden Copilot+ PCs.
CPU ✅ Tillgänglig (valfritt, flyttbart) Modellen är inte förinstallerad – se Modelltillgänglighet och nedladdning. Bäst på enheter som uppfyller de rekommenderade CPU-specifikationerna.
GPU (grafikprocessor) ❌ Stöds inte Taligenkänning är inte tillgängligt på GPU.

Note

Valet av maskinvara sker automatiskt. På en Copilot+ PC med en NPU körs taligenkänning alltid på NPU:n. På icke-Copilot+ enheter körs den automatiskt på processorn – det finns ingen utvecklare eller slutanvändare som väljer CPU på en Copilot+ enhet. Detta matchar det mönster som används av andra WINDOWS AI-API:er. Se Supported hardware för vyn mellan API:er.

Taligenkänning körs på alla processorer som resten av Windows AI-API:er körs på, men i realtid skalar transkriptionskvalitet och svarstid med värdprocessorn.

För en bra CPU-upplevelse, välj enheter som uppfyller alla följande rekommenderade specifikationer:

  • 4 eller fler fysiska kärnor
  • 3 GHz eller högre basklocka
  • 32 MB eller mer av L3-cacheminnet

Det här är rekommendationer, inte hårda miniminivåer – API:et försöker fortfarande transkribera på enheter med lägre specifikationer. Appar som riktar sig mot ett brett CPU-intervall kan använda samma körnings-CPU-kontroll som visas för VSR – se VSR Rekommenderade CPU-specifikationer för C#-exemplet med hjälp av System.Management (WMI). Använd resultatet för att styra UX-val, till exempel att använda batchigenkänning som standard på hårdvara på gränsen eller dölja ingången till liveströmning.

Modelltillgänglighet och nedladdning

På Copilot+ PCs är taligenkänningsmodellen förinstallerad på NPU:n. På enheter som endast är cpu-enheter är modellen inte förinstallerad – den laddas ned på begäran första gången appen anropar EnsureReadyAsync. Nedladdningen körs i bakgrunden via Windows Update. Slutanvändare kan också ta bort modellen senare för att frigöra diskutrymme.

Det här beteendet matchar modelllivscykeln som används av andra valfria Windows AI-modeller – appen måste hantera ärendet "inte installerat ännu" explicit i stället för att anta att modellen finns.

Eftersom taligenkänningsmodellen laddas ned på begäran på enheter med endast CPU, visa en bekräftelsedialog innan du anropar EnsureReadyAsync så att användaren kan samtycka till bakgrundsnedladdningen. Ett typiskt mönster:

  1. Anropa GetReadyState och förgrena baserat på det returnerade AIFeatureReadyState:

    • Ready — Modellen är installerad. fortsätta.
    • NotReady eller EnsureNeeded – visa dialogrutan med ditt medgivande (se nedan) och anropa EnsureReadyAsync endast om användaren samtycker.
    • NotSupportedOnCurrentSystem — enheten uppfyller inte kraven i maskinvara som stöds. Erbjud en reservupplevelse (till exempel Speech-igenkänning via Windows SDK eller en molnbaserad tjänst) och, när det är lämpligt, visa maskinvarukraven så att användaren kan fatta ett välgrundat uppgraderingsbeslut.
  2. I dialogrutan med ditt medgivande förklarar du:

    • En valfri taligenkänningsmodell laddas ned.
    • Nedladdningen sker i bakgrunden via Windows Update.
    • Användaren kan övervaka nedladdningsförloppet på Settings>Windows Update.
    • Användaren kan senare ta bort modellen på Inställningar>System>AI-komponenter om de inte längre vill ha den.

    Tip

    I användarriktade strängar (dialogtext, statusmeddelanden) refererar du till modellen som "taligenkänningsmodell" eller "valfri AI-modell" i stället för det underliggande modellnamnet. De flesta slutanvändare är inte bekanta med varumärken och allmänna termer kommunicerar syftet tydligare.

  3. Medan EnsureReadyAsync pågår visar du en förloppsindikator i din app. Se Kom igång med Windows AI-API:er för mönstret för inläsningsgränssnitt.

När modellen har installerats

Modellen finns kvar på enheten tills användaren tar bort den. Användare hanterar installerade modeller – inklusive taligenkänningsmodellen – på Inställningar>System>AI-komponenter. Om användaren senare tar bort modellen ska appens nästa anrop till GetReadyState returneras NotReady eller EnsureNeeded och medgivandet + nedladdningsflödet upprepas.

Batchigenkänning från en ljudfil

Använd batchigenkänning för att transkribera en fullständig ljudfil. Den här metoden är perfekt för förinspelat ljudinnehåll.

  1. Anropa GetReadyState och vänta tills EnsureReadyAsync har slutförts för att bekräfta att SpeechRecognitionModel är klar.
  2. När modellen är klar anropar du TryCreateAsync för att instansiera ett SpeechRecognitionModel-objekt.
  3. Skapa en BatchRecognition-instans med SpeechRecognitionModel.
  4. Anropa RecognizeFromFile med sökvägen till ljudfilen för att transkribera.
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}");

Strömningsigenkänning från en ljudkälla i realtid

Använd strömningsigenkänning för att transkribera ljud i realtid från en mikrofon eller annan ljudinmatningsenhet. Den här metoden ger slutresultatet när fullständiga fraser identifieras.

  1. Anropa GetReadyState och vänta tills EnsureReadyAsync har slutförts för att bekräfta att SpeechRecognitionModel är klar.
  2. När modellen är klar anropar du TryCreateAsync för att instansiera ett SpeechRecognitionModel-objekt.
  3. Skapa en AudioConfiguration med FromAudioDevice med mikrofonenhetens namn.
  4. Skapa en StreamingRecognition-instans med AudioConfiguration och SpeechRecognitionModel.
  5. Prenumerera på Recognized-händelsen för att ta emot transkriptionsresultat.
  6. Anropa StartContinuousRecognitionAsync för att påbörja transkriptionen.
  7. Anropa StopContinuousRecognition när du är klar.
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();

Se även


MEDDELANDEN OCH INFORMATION OM TREDJEPARTSMODELLER

Det här API:et använder komponenter från OpenAI Whisper-modellen , som tillhandahålls under följande licens:

MIT-Licens

Copyright (c) 2022 OpenAI

Behörighet ges härmed kostnadsfritt till alla personer som skaffar en kopia av den här programvaran och associerade dokumentationsfiler ("Programvaran"), att hantera programvaran utan begränsningar, inklusive rättigheter att använda, kopiera, ändra, sammanfoga, publicera, distribuera, underlicensiera och/eller sälja kopior av programvaran samt ge andra personer, som programvaran ges till, behörighet att göra det, på följande villkor:

Ovanstående copyright-information och den här behörighetsinformationen ska inkluderas i alla kopior eller väsentliga delar av programvaran.

PROGRAMVARAN LEVERERAS "I BEFINTLIGT SKICK", UTAN NÅGRA SOM HELST GARANTIER, DIREKTA ELLER INDIREKTA, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIER VAD GÄLLER SÄLJBARHET, LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL OCH FRÅNVARO AV INTRÅNG I TREDJE PARTS RÄTTIGHETER. INTE I NÅGOT FALL SKA FÖRFATTARNA ELLER COPYRIGHT-INNEHAVARNA HÅLLAS ANSVARIGA FÖR NÅGRA KRAV, SKADOR ELLER ANNAT ANSVAR, OAVSETT KONTRAKTSÅTGÄRD, HANDLINGAR ELLER ANNAT SOM UPPKOMMER FRÅN, ELLER I ANSLUTNING TILL PROGRAMVARAN ELLER ANVÄNDNING ELLER ANNAN HANTERING AV PROGRAMVARAN.