ms-ai-architect/skills/ms-ai-engineering/references/azure-ai-services/speech-services-speech-to-text.md
Kjell Tore Guttormsen 070141f06b chore(ms-ai-architect): refresh KB medium-bucket — 74 files [skip-docs]
KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update.
74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert
til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med
disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av
de faktatunge gruppene + tester).

Hovedendringer (faktuelle korreksjoner + currency):
- Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic
  m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i
  tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup).
- APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i
  rag-caching-optimization hadde retningen baklengs — invertert til korrekt.
- Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot
  agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV
  grounding (references + activity), IKKE syntetiserte svar. Answer synthesis,
  ikke-minimal reasoning effort (LLM query planning) og multi-turn messages
  forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele
  kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking.
- Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus
  4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA),
  Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview;
  A2A GA (apr 2026).
- Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status
  (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/
  steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool
  + Hosted browser + bring-your-own-machine.
- Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil),
  2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac,
  chunking).
- Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent
  calls the flow"; App Service innebygd MCP (preview) lagt til.
- M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni);
  "Tenant graph grounding" -> "Work IQ".
- Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales
  (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01).
- Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices ->
  ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den
  presenteres som go-forward. Gateway-topologi-tabell-feil rettet.
- Alle 74 Last updated -> 2026-06-19.

Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret,
ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings
uendret), gitleaks clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 14:02:18 +02:00

470 lines
20 KiB
Markdown

# Speech Services - Speech-to-Text and Real-time Transcription
**Last updated:** 2026-06-19 | Verified: MCP 2026-06-19
**Status:** GA
**Category:** Azure AI Services (Foundry Tools)
---
## Introduksjon
Azure Speech Services tilbyr avansert tale-til-tekst-funksjonalitet som konverterer talte ord til maskinlesbar tekst. Tjenesten støtter tre hovedmodi: **real-time transcription** for live-lyd fra mikrofon eller streaming, **fast transcription** for rask synkron transkripsjon med forutsigbar latens, og **batch transcription** for asynkron prosessering av store lydvolumer i lagring.
Speech-to-text bygger på Microsoft-eid Universal Language Model som er trent på store mengder data på tvers av dialekter, akustiske forhold og domener. For spesialiserte behov kan man fine-tune custom speech-modeller med egne data for å forbedre nøyaktigheten på domene-spesifikt vokabular eller spesifikke lydforhold. Tjenesten tilbyr også speaker diarization (identifisering av ulike talere), språkidentifikasjon, flerspråklig transkripsjon, og phrase list-optimalisering.
Azure Speech to text er en kritisk byggesten i AI-løsninger som krever talegjenkjenning — fra tilgjengelighetsverktøy og kundeservice til medieproduksjon og compliance-dokumentasjon.
## Kjernekomponenter / Nøkkelegenskaper
### Tre transkripsjonsmodi
| Modus | Bruksområde | Latens | Input | Output |
|-------|-------------|--------|-------|--------|
| **Real-time** | Live-lyd fra mikrofon/stream | ~sekunder (intermediate results) | Audio stream via SDK/REST | Tekst i real-time |
| **Fast transcription** | Raske transkripsjoner av filer | < real-time (synkron) | Lydfiler < 5 timer, < 500 MB | Display form (med punktum/caps) |
| **Batch transcription** | Store volumer prerecorded audio | Asynkron (30 min - 24 timer) | Flere filer via Blob Storage | JSON med lexical + display form |
### Custom Speech
Custom speech lar deg fine-tune base-modellen med:
- **Text data** → forbedrer gjenkjenning av domene-spesifikt vokabular (medisinsk, juridisk, teknisk)
- **Audio + transcripts** → forbedrer gjenkjenning under spesifikke lydforhold (bakgrunnsstøy, dialekter, akustikk)
- **Structured text** → spesifiserer uttale, custom profanity filtering, inverse text normalization
Custom-modeller krever deployment til et **custom endpoint** (bortsett fra ved batch transcription). Modeller utløper etter en definert periode (se Model Lifecycle).
### Speaker Diarization
Identifiserer og skiller mellom ulike talere i én lydkanal. Returnerer `speaker` ID (0, 1, 2...) per phrase.
```json
{
"channel": 0,
"speaker": 1,
"text": "Good afternoon. This is Sam.",
"confidence": 0.936
}
```
**Begrensninger:**
- Maksimalt 2 kanaler hvis diarization er aktivert
- Diarization støttes ikke på tvers av flere kanaler samtidig
### Language Identification
Fast transcription og real-time kan identifisere språk automatisk hvis du:
- Spesifiserer flere locales: `["en-US", "ja-JP"]` → tjenesten velger beste match
- Ikke spesifiserer locales: `[]` → multi-lingual model identifiserer og transkriberer kontinuerlig
**Multi-lingual transcription (preview):** Støtter 15 språk (de-DE, en-AU/CA/GB/IN/US, es-ES/MX, fr-CA/FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN) i én fil uten å spesifisere locale.
### Phrase List
Forbedrer gjenkjenning av spesifikke ord/fraser ved å øke deres vekt:
```json
{
"phraseList": {
"phrases": ["Contoso", "Jessie", "Rehaan"]
}
}
```
Tilgjengelig i fast transcription (API version 2025-10-15).
### Støttede lydformater
- WAV, MP3, OPUS/OGG, FLAC, WMA, AAC, ALAW (WAV), MULAW (WAV), AMR, WebM, SPEEX
- Batch transcription: ubegrenset filstørrelse
- Fast transcription: < 5 timer, < 500 MB
- Real-time: streaming (ingen filstørrelsesbegrensning)
### Tilgangspunkter
| Metode | Bruksområde | API |
|--------|-------------|-----|
| **Speech SDK** | Real-time, programmatisk integrasjon | C#, Python, Java, JavaScript, C++, Go |
| **Speech CLI** | Kommandolinje, testing, scripting | `spx` |
| **REST API** | Batch, fast transcription, serverless | Speech to text REST API |
| **Speech Studio** | Web UI, testing, custom speech training | [speech.microsoft.com](https://speech.microsoft.com) |
## Arkitekturmønstre
### 1. Real-time Transcription for Live Events
**Bruksområde:** Tilgjengelighet (live captions), kundeservice, møtenotater
**Arkitektur:**
```
[Mikrofon/Stream] → Speech SDK → Azure Speech Service
Real-time text
[UI/Caption display/Agent dashboard]
```
**Fordeler:**
- Lav latens (intermediate results underveis)
- Støtter pronunciation assessment
- Fleksibel integrasjon via SDK
**Ulemper:**
- Krever kontinuerlig nettverksforbindelse
- Mindre kostnadseffektiv for store volumer
- Ikke optimalisert for batch-prosessering
**Når bruke:**
- Live events (webinars, møter)
- Interactive voice response (IVR)
- Accessibility (real-time captions)
---
### 2. Batch Transcription for High-Volume Processing
**Bruksområde:** Call center analytics, medieproduksjon, compliance-logging
**Arkitektur:**
```
[Lydfiler] → Azure Blob Storage → Batch Transcription API
Asynkron prosessering
[JSON results i Blob Storage]
[Analytics pipeline / Data lake]
```
**Fordeler:**
- Skalerer til tusenvis av filer
- Ingen deployment endpoint nødvendig for custom models
- Kan bruke Whisper model (via batch API)
- Kostnadseffektiv for store volumer
**Ulemper:**
- Asynkron (30 min - 24 timer ventetid)
- Best-effort scheduling (kan ta tid i peak hours)
- Krever polling for å sjekke status
**Best practices:**
- Send ~1000 filer per `Transcription_Create` request
- Distribuer requests over tid (ikke send alt på én gang)
- Poll status maks én gang per minutt (ideelt hvert 5-10 min)
- Vurder multi-region load balancing for global scale
**Når bruke:**
- Call center transkripsjoner (etterpå)
- Video subtitling for arkiv
- Compliance-dokumentasjon av opptak
---
### 3. Fast Transcription for Predictable Low-Latency
**Bruksområde:** Video editing, voicemail, meeting notes
**Arkitektur:**
```
[Lydfil < 5h] → Fast Transcription API → Synkron respons
JSON med display text
[App/Editor/Workflow]
```
**Fordeler:**
- Raskere enn real-time (synkron)
- Forutsigbar latens
- Støtter diarization, language ID, phrase list
- Ingen ventetid (ingen polling)
**Ulemper:**
- Kun display form (ikke lexical)
- Maksimalt 5 timer audio, 500 MB
- Ikke egnet for store volumer (throttling)
**Når bruke:**
- Quick video transcription
- Voicemail transcription
- Meeting notes med diarization
---
## Beslutningsveiledning
### Velg transkripsjonsmodus
| Scenario | Anbefaling | Hvorfor |
|----------|------------|---------|
| Live webinar med captions | **Real-time** | Krever intermediate results og lav latens |
| 500 call center-opptak per dag | **Batch** | Asynkron, kostnadseffektiv, skalerer godt |
| Video editing med rask turnaround | **Fast** | Synkron, < 5h fil, raskere enn real-time |
| IVR (interactive voice response) | **Real-time** | Må respondere umiddelbart på tale |
| Compliance-logging av møter | **Batch** | Ingen hastegrad, store volumer |
### Custom Speech vs. Base Model
| Bruk custom model hvis... | Bruk base model hvis... |
|----------------------------|-------------------------|
| Domene-spesifikt vokabular (medisinsk, juridisk) | Generell tale (møter, samtaler) |
| Spesifikke lydforhold (støy, dialekt) | Standard akustikk |
| WER > 10% med base model | WER < 5% med base model |
| Kan levere minimum 1-10 timer annotert audio | Ikke har treningsdata |
**Training cost:** Custom models bygget på base models fra okt 2023 eller senere koster penger å trene. Tidligere modeller er gratis å trene.
### Vanlige feil å unngå
| Feil | Konsekvens | Løsning |
|------|------------|---------|
| Ikke spesifisere `locales` i fast transcription | Langsamere, mindre nøyaktig | Alltid send `"locales": ["en-US"]` hvis du vet språket |
| Polle batch transcription hvert sekund | Unødvendig load, throttling | Poll maks 1 gang per minutt (ideelt 5-10 min) |
| Bruke real-time for batch processing | Dyrt, ineffektivt | Bruk batch transcription for > 10 filer |
| Deploye custom endpoint for batch-bruk | Unødvendig hosting-kostnad | Batch transcription trenger ikke endpoint |
| Sende 10 000 batch requests samtidig | Best-effort scheduling = lang ventetid | Send ~1000 filer per request, distribuer over tid |
### Røde flagg
- **429 error (too many requests):** Du treffer throttling limits. Implementer exponential backoff eller distribuer requests.
- **WER > 20% på base model:** Custom speech er nødvendig, eller audioqualitet er for dårlig.
- **Batch transcription venter > 24 timer:** Peak load eller region overbelastet. Vurder multi-region strategi.
## Integrasjon med Microsoft-stakken
### Azure AI Foundry
Speech Services er en **Foundry Tool** i Azure AI Foundry. Du kan:
- Koble eksisterende Speech resource til Foundry project
- Teste real-time og fast transcription i Foundry portal
- Bringe custom speech models fra Speech Studio til Foundry
- Integrere med Prompt Flow for multimodal AI-løsninger
### Copilot Studio
Kan integrere Speech to text for:
- Voice-enabled bots (tale-input til Copilot)
- Call center automation
- Accessibility features
**Merk:** Copilot Studio har innebygd speech, men Azure Speech gir mer kontroll (custom models, diarization, etc.)
### Power Platform
**Power Automate:** Batch Speech to text Connector (low-code) lar deg:
- Trigge batch transcription fra Flow
- Hente resultater automatisk
- Integrere med Dataverse/SharePoint
**Azure Logic Apps:** Samme connector som Power Automate.
### Azure OpenAI + Speech
Kombinasjon for voice-enabled AI assistants:
1. Speech to text → transkriberer brukerinput
2. Azure OpenAI (GPT-4) → genererer respons
3. Speech synthesis → konverterer respons til tale
**Whisper via Azure OpenAI:** Azure OpenAI tilbyr Whisper model for transcription, men med andre pricing og capabilities enn Azure Speech batch transcription.
### M365 Copilot
M365 Copilot bruker Microsoft Speech internt for:
- Teams meeting transcription
- Outlook voice commands
**Integrasjonspunkt:** Du kan supplere med custom speech models hvis M365 Copilot ikke gjenkjenner domene-spesifikke termer godt nok (krever Azure Speech resource).
## Offentlig sektor (Norge)
### GDPR og datasuverenitet
**Data residency:** Azure Speech støtter **West Europe** og **North Europe** regions. Audio og transkripsjondata kan lagres i EU.
**Data processing:**
- Audio sendes til Speech endpoint (real-time/fast transcription)
- Batch transcription leser fra og skriver til Blob Storage (kan være i Norway/EU)
- Custom speech training data lagres i Speech resource region
**Retention:**
- Microsoft-owned storage: Logging data slettes etter 30 dager
- Customer-owned storage: Du kontrollerer retention
### AI Act (EU)
Speech to text faller typisk under **begrenset risiko** (transparency obligations):
- **Krav:** Informer brukere om at tale blir transkribert av AI
- **Dokumentasjon:** Microsoft leverer transparency notes for Speech to text
- **High-risk:** Hvis brukt i rekruttering, rettssaker, eller biometric identification → strengere krav
### Schrems II
**Microsoft compliance:**
- EU Data Boundary commitment (data prosesseres i EU)
- Standard Contractual Clauses (SCCs)
- Ingen U.S. government data access for EU-lagrede data
**For offentlig sektor:** Bruk West Europe/North Europe regions og customer-managed keys (CMK) for ekstra kontroll.
### Forvaltningsloven (Norge)
Offentlige virksomheter må kunne:
- **Dokumentere beslutninger:** Batch transcription gir JSON med lexical + display form → arkiverbart
- **Innsyn:** Transkripsjondata er personopplysninger hvis det identifiserer personer
- **Kvalitetssikring:** Custom speech modeller må testes for bias (dialekter, kjønn, alder)
**Anbefaling:** Test custom models på representative norske dialekter (østlandsk, bergensk, trøndersk) for å unngå bias.
### Personvern og konfidensialitet
**Speaker diarization:** Identifiserer talere, men ikke *hvem* de er (kun "Speaker 1, Speaker 2"). Ingen biometric identification.
**Audio logging:**
- Deaktiver audio logging hvis personvern er kritisk
- Bruk customer-managed storage for full kontroll
- Implementer data retention policies (slett audio etter transkripsjon)
**Profanity filtering:** Bruk `profanityFilterMode: "Removed"` eller `"Masked"` i offentlige systemer for compliance.
## Kostnad og lisensiering
### Prismodell (per februar 2026)
**Real-time transcription:**
- Standard: ~$1 per audio hour
- Custom speech endpoint hosting: ~$0.05 per model per hour
**Fast transcription:**
- ~$0.50 per audio hour (raskere enn real-time)
**Batch transcription:**
- Standard: ~$1 per audio hour
- Custom model: Ingen ekstra kostnad (krever ikke endpoint)
**Custom speech training:**
- Base models fra okt 2023+: Betalt (~$20-50 per training run)
- Eldre base models: Gratis training
**Merk:** Priser er veiledende, sjekk [Azure Pricing Calculator](https://azure.microsoft.com/pricing/details/cognitive-services/speech-services/) for eksakte tall.
### Optimaliseringstips
| Strategi | Besparelse | Trade-off |
|----------|------------|-----------|
| Bruk batch i stedet for real-time for prerecorded audio | 30-50% | Asynkron (ventetid) |
| Deaktiver custom endpoint for batch-bruk | ~$35/måned per modell | Kan ikke bruke custom model i real-time |
| Bruk fast transcription for < 5h filer | Raskere = mindre compute-kostnad | Kun display form |
| Multi-region load balancing | Unngå throttling (indirekte besparelse) | Mer kompleks arkitektur |
| Audio compression (MP3 i stedet for WAV) | Mindre bandwidth-kostnad | Marginal besparelse |
### TCO-eksempel (call center med 10 000 timer/måned)
**Scenario:** Call center med 10 000 timer opptak per måned, behov for custom model (medisinsk/juridisk vokabular).
| Komponent | Kostnad/måned (USD) |
|-----------|---------------------|
| Batch transcription (10k timer) | $10 000 |
| Custom model training (1x per kvartal) | $17 (amortisert) |
| Blob Storage (audio + results) | $50 |
| **Total** | **~$10 067** |
**Vs. real-time:** $10 000 (transcription) + $35 (endpoint hosting) = $10 035 (men krever real-time streaming).
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **"Trenger dere transkripsjon i real-time, eller kan dere vente minutter/timer?"**
- Real-time → Speech SDK + real-time API
- Kan vente → Fast transcription (< 5h) eller Batch (> 5h)
2. **"Hvor mange timer audio prosesserer dere per måned, og hvor ofte?"**
- < 100 timer/måned → Real-time eller fast transcription
- > 1000 timer/måned → Batch transcription obligatorisk
3. **"Har dere domene-spesifikt vokabular (medisinsk, juridisk, teknisk)?"**
- Ja → Custom speech nødvendig (test base model først)
- Nei → Base model er trolig tilstrekkelig
4. **"Trenger dere å identifisere ulike talere?"**
- Ja → Diarization (maks 2 kanaler)
- Nei → Standard transcription
5. **"Hvilke språk snakkes i opptakene, og er det én eller flere språk per opptak?"**
- Én kjent språk → Spesifiser `locales: ["nb-NO"]`
- Ukjent språk → Language identification (`locales: ["nb-NO", "en-US"]`)
- Flere språk i samme opptak → Multi-lingual transcription (preview)
6. **"Hvor viktig er datasuverenitet og personvern?"**
- Kritisk → West Europe region, customer-managed keys, disable logging
- Viktig → West Europe region, standard encryption
- Mindre viktig → Hvilken som helst region
7. **"Har dere eksisterende lydfiler, eller er dette live audio?"**
- Prerecorded → Batch eller fast transcription
- Live → Real-time transcription
8. **"Hva er akseptabel Word Error Rate (WER)?"**
- < 5% → Base model kan fungere
- < 2% → Custom speech nødvendig
- < 1% → Krever betydelig training data og fine-tuning
### Fallgruver å unngå
1. **Over-engineering med custom speech:** Test alltid base model først. Custom speech krever tid, data, og løpende vedlikehold (model expiry).
2. **Ikke planlegge for throttling:** Azure Speech har rate limits. Implementer exponential backoff og retry logic.
3. **Ignorere model lifecycle:** Custom models og base models har expiry dates. Sett opp automatisk oppdatering eller notifications.
4. **Mikse real-time og batch i samme arkitektur:** Velg én primær modus. Hvis både live og prerecorded, bruk separate pipelines.
5. **Ikke teste på representative data:** Custom models trent på én dialekt kan feile på andre. Test på variert audio (bakgrunnsstøy, kjønn, alder, dialekter).
6. **Undervurdere batch transcription latency:** Best-effort scheduling = kan ta 24 timer i peak. Ikke bruk batch hvis du trenger resultater innen minutter.
### Anbefalinger per modenhetsnivå
#### Nivå 1: Proof of Concept
- **Bruk:** Speech Studio (web UI) eller Speech CLI
- **Modell:** Base model (ingen custom speech)
- **Modus:** Real-time eller fast transcription (< 100 timer)
- **Fokus:** Verifiser at speech to text fungerer for ditt domene
#### Nivå 2: Pilot / MVP
- **Bruk:** Speech SDK i app/service
- **Modell:** Base model, test custom speech hvis WER > 10%
- **Modus:** Fast transcription for < 5h filer, batch for > 5h
- **Fokus:** Implementer error handling, retry logic, cost tracking
#### Nivå 3: Production
- **Bruk:** Speech SDK + REST API (batch)
- **Modell:** Custom speech hvis nødvendig, automatiser model updates
- **Modus:** Batch transcription for scale, real-time for live use cases
- **Fokus:** Multi-region deployment, throttling mitigation, monitoring (WER, latency, cost)
- **Compliance:** Data residency, retention policies, transparency notes
#### Nivå 4: Enterprise Scale
- **Bruk:** Speech SDK + batch REST API + Power Automate connector
- **Modell:** Multiple custom models per domene/språk
- **Modus:** Batch transcription med multi-region load balancing
- **Fokus:** Cost optimization (reserved capacity), advanced analytics (sentiment, topic modeling), integration med data lake
- **Governance:** Automated model lifecycle, bias testing, compliance reporting
## Kilder og verifisering
**Microsoft Learn (Verified via MCP):**
- [What is speech to text?](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-to-text)
- [What is batch transcription?](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/batch-transcription)
- [What is custom speech?](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/custom-speech-overview)
- [Use the fast transcription API](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/fast-transcription-create)
- [Quickstart: Recognize and convert speech to text](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/get-started-speech-to-text)
- [Speech to text REST API reference](https://learn.microsoft.com/en-us/rest/api/speechtotext/transcriptions/transcribe)
**Confidence markers:**
- Real-time transcription, batch transcription, custom speech, diarization: **Verified** (Microsoft Learn)
- Fast transcription API, phrase list, multi-lingual transcription: **Verified** (Microsoft Learn)
- Pricing: **Baseline** (veiledende, sjekk Azure Pricing Calculator for eksakte tall)
- Norwegian compliance (Forvaltningsloven, dialekter): **Baseline** (generell kunnskap, ikke Microsoft-spesifikk)
**Sist oppdatert:** 2026-06-19 (basert på Microsoft Learn documentation per juni 2026)