ms-ai-architect/skills/ms-ai-engineering/references/azure-ai-services/speech-services-speech-to-text.md
Kjell Tore Guttormsen 6645e93205 docs(architect): weekly KB update — 106 files refreshed (2026-04)
Updates across all 5 skills: ms-ai-advisor, ms-ai-engineering,
ms-ai-governance, ms-ai-security, ms-ai-infrastructure.

Key changes:
- Language Services (Custom Text Classification, Text Analytics, QnA):
  retirement warning 2029-03-31, migration guides to Foundry/GPT-4o
- Agentic Retrieval: 50M free reasoning tokens/month (Public Preview)
- Computer Use: Claude Sonnet 4.5 (preview) + OpenAI CUA models
- Agent Registry: Risks column (M365 E7), user-shared/org-published types
- Declarative agents: schema v1.5 → v1.6, Store validation requirements
- MLflow 3: 13 built-in LLM judges, production monitoring, Genie Code
- AG-UI HITL: ApprovalRequiredAIFunction (C#) + @tool(approval_mode) (Python)
- Entra ID Ignite 2025: Agent ID Admin/Developer RBAC roles, Conditional Access
- Security Copilot: 400 SCU/month per 1000 M365 E5 licenses, auto-provisioned
- Fast Transcription API: phrase lists, 14-language multi-lingual transcription
- Azure Monitor Workbooks: Bicep support, RBAC specifics
- Power Platform Copilot: data residency (Norway/Europe → EU DB, Bing → USA)
- RAG security-rbac: 4-approach table (GA + 3 preview access control methods)
- IaC MLOps: Well-Architected OE:05 principles, Bicep/Terraform patterns
- Translator: image file batch translation Preview (JPEG/PNG/BMP/WebP)

All 106 files: Last updated 2026-04 | Verified: MCP 2026-04

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:13:24 +02:00

470 lines
20 KiB
Markdown

# Speech Services - Speech-to-Text and Real-time Transcription
**Last updated:** 2026-04 | Verified: MCP 2026-04
**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 < 2 timer, < 300 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 14 språk (de-DE, en-AU/CA/GB/IN/US, es-ES/MX, fr-CA/FR, it-IT, ja-JP, ko-KR, 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: < 2 timer, < 300 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 < 2h] → 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 2 timer audio, 300 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, < 2h 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 < 2h 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 (< 2h) eller Batch (> 2h)
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 < 2h filer, batch for > 2h
- **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-02 (basert på Microsoft Learn documentation per februar 2026)