Azure AI Speech è il servizio della piattaforma Azure AI che espone in un unico resource le capacità di riconoscimento e sintesi vocale. Come architetto della soluzione, la prima scelta non è “quale codice scrivere”, ma quale modalità usare in base a latenza, dimensione dell’audio e requisiti di personalizzazione.

Speech-to-text: real-time, batch e custom

Il riconoscimento vocale converte l’audio in testo. Esistono tre approcci che l’esame ti chiede di distinguere con precisione.

  • Real-time (streaming) via Speech SDK: usa un flusso continuo dal microfono o da uno stream per ottenere trascrizioni a bassa latenza, con risultati parziali (recognizing) prima di quelli finali (recognized). È la scelta per scenari interattivi — call center live, sottotitolazione, comandi vocali. Richiede una connessione persistente per tutta la durata dell’audio.
  • Batch transcription: è un’API REST asincrona che elabora file audio già archiviati (tipicamente su Azure Blob Storage, indicati tramite URL o SAS). Sottometti un job, ricevi un ID e recuperi il risultato quando è pronto. È la scelta per grandi volumi, registrazioni lunghe e processing offline dove la latenza non conta ma il throughput sì. Supporta funzioni utili come diarization (attribuzione delle frasi ai diversi speaker) e word-level timestamps.
  • Custom Speech: quando il modello base sbaglia su termini di dominio, accenti o rumore ambientale, addestri un modello personalizzato con audio + trascrizioni o con dati testuali (frasi e pronunce). Lo pubblichi su un endpoint dedicato e lo richiami tramite il suo endpoint ID sia in real-time sia in batch.

Configurazione tipica

Nel Speech SDK definisci sempre SpeechConfig (chiave/regione o token Entra ID) e la lingua di riconoscimento. Per audio non standard usi un AudioConfig:

speechConfig.SpeechRecognitionLanguage = "it-IT";

Text-to-speech: neural voice, custom neural voice e SSML

La sintesi vocale genera audio a partire dal testo usando neural voice prebuilt, voci prosodicamente naturali disponibili in molte lingue e stili. La configurazione minima richiede solo di impostare la voce (SpeechSynthesisVoiceName) e il formato audio di output.

Il Custom Neural Voice (CNV) permette di creare una voce di brand unica addestrandola su registrazioni di uno speaker. Punto chiave d’esame: è una funzione ad accesso limitato (Limited Access / gated), per motivi di uso responsabile — devi richiedere l’abilitazione e ottenere il consenso dello speaker; non la attivi liberamente come le neural voice standard.

SSML: controllo fine della sintesi

SSML (Speech Synthesis Markup Language) è XML che avvolge il testo per controllare l’output in modo granulare, e i suoi valori sovrascrivono i default della voce:

  • <prosody> per pitch, rate e volume;
  • <break> per inserire pause di durata definita;
  • <phoneme> e i custom lexicon per correggere la pronuncia di termini tecnici, sigle o nomi propri;
  • <mstts:express-as> per applicare stili e ruoli (es. cheerful, newscast, customerservice), disponibili solo su voci che li supportano.
<voice name="it-IT-ElsaNeural">
  <prosody rate="-10%"><break time="300ms"/> Benvenuto.</prosody>
</voice>

Translation e speaker features

Oltre a STT/TTS, il servizio offre la Speech translation via SDK (TranslationRecognizer): riconosce il parlato in una lingua sorgente e restituisce trascrizione + traduzioni in una o più lingue target in un’unica pipeline, opzionalmente sintetizzando l’audio tradotto. Attenzione a non confonderla con il servizio testuale Azure AI Translator: per speech-to-speech / speech-to-text translation la risposta corretta è Speech translation. Le speaker features (Speaker Recognition — identificazione e verifica del parlante) sono anch’esse gated e servono a scenari di autenticazione vocale, distinte dalla semplice diarization della batch transcription.

Trappole tipiche d’esame

  • File audio grandi, non interattivi, in Blob Storagebatch transcription (REST asincrona), non lo streaming SDK. Lo streaming è per il real-time a bassa latenza.
  • Serve una voce personalizzata del brandCustom Neural Voice, ma ricorda che è Limited Access: va richiesta l’abilitazione e serve il consenso dello speaker.
  • La voce pronuncia male una sigla o applica il tono sbagliato → correggi con SSML (<phoneme>/lexicon per la pronuncia, <prosody> e <mstts:express-as> per tono e stile); SSML prevale sui default della voce.
  • Termini di dominio riconosciuti male in STTCustom Speech con endpoint dedicato, non un cambio di lingua o di voce.
  • Tradurre il parlato in un’altra linguaSpeech translation (Speech SDK); l’API testuale Translator vale solo per testo già trascritto.