Aggiungere la sintesi vocale a Svelte
Scopri come aggiungere alla tua app Svelte una sintesi vocale conveniente e di alta qualità con TTS2Go, combinando la sintesi del browser come fallback con l’audio AI.

Svelte nasce all’insegna della semplicità e delle prestazioni, e aggiungere la sintesi vocale (TTS) a un’app Svelte può essere altrettanto semplice.
Che tu voglia rendere i tuoi contenuti più accessibili, creare un’esperienza di lettura audio o aggiungere un feedback vocale, la sintesi vocale si integra in pochi minuti. Questa guida spiega come funziona la sintesi vocale del browser, i compromessi dei diversi approcci TTS e come far funzionare TTS2Go nel tuo progetto Svelte.
Come funziona la sintesi vocale del browser
I browser moderni includono la Web Speech API, che ti permette di chiamare window.speechSynthesis.speak() con un SpeechSynthesisUtterance per leggere un testo ad alta voce.
Caratteristiche principali:
- Nessuna dipendenza: tutto gira nel browser.
- Niente API key né chiamate al server: non serve alcuna integrazione backend.
- Nessun costo: usa le voci integrate nel sistema.
Ci sono però dei compromessi:
- Qualità robotica e incostante: le voci suonano spesso artificiali.
- Dipendenza dalla piattaforma: le voci cambiano tra Chrome e Firefox, tra macOS e Windows.
- Scelta di voci limitata: meno lingue e stili rispetto alla moderna sintesi vocale AI.
L’ascesa del parlato generato dall’AI
I modelli neurali di sintesi vocale producono audio dal suono naturale, con intonazione e ritmo realistici. Supportano molte lingue, accenti e stili di voce, il che li rende ideali per narrazioni ed esperienze vocali di livello professionale.
I compromessi:
- Pro:
- Audio naturale e di alta qualità
- Ampia copertura di lingue e voci
- Suono coerente su tutti i dispositivi e browser
- Contro:
- Costo: paghi per carattere o per secondo di audio generato.
- Chiamate API: richiede un’integrazione lato server o lato client autenticata.
Questo pone una questione di design: come bilanciare la qualità audio con i costi di generazione e controllare quando l’audio viene creato?
Pregenerare l’audio
Un approccio è pregenerare l’audio per tutti i tuoi contenuti e ospitarlo su una CDN.
Come funziona:
- Converti in anticipo tutti i contenuti testuali in file audio.
- Carica quei file e servili da una CDN.
- Gli utenti ottengono una riproduzione immediata, senza attese di generazione.
Pro:
- Riproduzione immediata per ogni visitatore
- Audio coerente e di alta qualità
- Comportamento semplice a runtime (basta riprodurre un file)
Contro:
- Paghi la generazione dell’audio per contenuti che potrebbero non essere mai ascoltati.
- Tutti i contenuti devono essere noti in anticipo.
- Ogni modifica dei contenuti richiede una nuova generazione.
- I costi di archiviazione e di CDN crescono con il volume dei contenuti.
Per contenuti dinamici o aggiornati spesso, diventa presto costoso e pesante da gestire.
Generazione lazy on demand
Un’altra strategia è la generazione on demand (lazy), in cui l’audio viene creato solo quando un utente preme davvero play.
Come funziona:
- Quando un utente richiede l’audio di un contenuto, chiami l’API di sintesi vocale.
- L’audio generato viene messo in cache o archiviato.
- Le richieste successive riutilizzano l’audio in cache.
Pro:
- Molto più conveniente: paghi solo i contenuti che gli utenti ascoltano davvero.
- Supporta in modo naturale i contenuti dinamici e generati dagli utenti.
- Riduce le generazioni sprecate per contenuti mai ascoltati.
Sfide:
- Senza controlli, chiunque potrebbe avviare generazioni costose.
- Ti serve un modo per decidere quali contenuti ricevono l’audio e quando.
- Devi bilanciare l’esperienza utente (attesa iniziale) con il controllo del budget.
Come lo risolve TTS2Go
TTS2Go combina la sintesi del browser e la sintesi vocale AI per bilanciare qualità, costi e semplicità.
Idee chiave:
- Chiave lato client sicura
- Aggiungi l’SDK di TTS2Go al tuo sito con una API key frontend.
Passo 1: installa l’SDK
Installa il pacchetto Svelte di TTS2Go:
npm install @tts2go/svelte
Il pacchetto funziona con Svelte 5 e si integra in modo naturale con il modello di reattività di Svelte.
Passo 2: crea il client
Inizializza un client TTS2Go con le credenziali del tuo progetto. In Svelte puoi creare il client direttamente in un componente o in un modulo condiviso.
import { createTTS2GoClient } from "@tts2go/svelte";
const client = createTTS2GoClient({
apiKey: "your-api-key",
projectId: "your-project-id",
});
- apiKey: la tua chiave TTS2Go pubblica, sicura da usare nel frontend.
- projectId: identifica il progetto TTS2Go da usare per generazione, approvazioni e analisi.
Passo 3: aggiungi la sintesi vocale in Svelte
Usa createTTS per ottenere uno store reattivo con i controlli di riproduzione e lo stato.
import { createTTS2GoClient, createTTS } from "@tts2go/svelte";
const client = createTTS2GoClient({
apiKey: "your-api-key",
projectId: "your-project-id",
});
const VOICE_ID = "your-voice-id";
const text = "Hello from TTS2Go in Svelte!";
const tts = createTTS(client, text, VOICE_ID);
let status = $state("idle");
const unsubscribe = tts.status.subscribe((s) => (status = s));
function handleClick() {
if (status === "playing" || status === "fallback") {
tts.stop();
} else {
tts.play();
}E adesso?
Da qui puoi:
- Esplorare la selezione delle voci per adattarla al tuo brand o al tipo di contenuto.
- Usare SSML per controllare in modo preciso pronuncia, pause ed enfasi.
- Integrare l’API di evidenziazione del testo per sincronizzare il testo con l’audio.
Per la documentazione completa di Svelte ed esempi avanzati, visita:
https://tts2go.com/docs/svelte