Sviluppo webSintesi vocale

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.

Anthony Morris·
Aggiungere la sintesi vocale a Svelte

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:

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