refresh date: 2026-09-25 robots: noindex
Descrizione
Utilizza l'API chrome.tts per riprodurre la sintesi vocale (TTS) sintetizzata. Consulta anche l'API ttsEngine correlata, che consente a un'estensione di implementare un motore di sintesi vocale.
Autorizzazioni
ttsPanoramica
Chrome fornisce il supporto nativo per la sintesi vocale su Windows (utilizzando SAPI 5), Mac OS X e ChromeOS, utilizzando le funzionalità di sintesi vocale fornite dal sistema operativo. Su tutte le piattaforme, l'utente può installare estensioni che si registrano come motori di sintesi vocale alternativi.
Generazione di parlato
Chiama speak() dal tuo interno per parlare. Ad esempio:
chrome.tts.speak('Hello, world.');
Per interrompere immediatamente la lettura, chiama stop():
chrome.tts.stop();
Puoi fornire opzioni che controllano varie proprietà del parlato, come la velocità, il tono e altro ancora. Ad esempio:
chrome.tts.speak('Hello, world.', {'rate': 2.0});
È inoltre consigliabile specificare la lingua in modo che venga scelto un sintetizzatore che la supporti (e il dialetto regionale, se applicabile).
chrome.tts.speak('Hello, world.', {'lang': 'en-US', 'rate': 2.0});
Per impostazione predefinita, ogni chiamata a speak() interrompe qualsiasi discorso in corso e parla immediatamente. Per
determinare se una chiamata interromperebbe qualcosa, puoi chiamare isSpeaking(). Inoltre, puoi utilizzare l'opzione enqueue per aggiungere questo enunciato a una coda di enunciati che verranno pronunciati al termine dell'enunciato corrente.
chrome.tts.speak('Speak this first.');
chrome.tts.speak(
'Speak this next, when the first sentence is done.', {'enqueue': true});
Una descrizione completa di tutte le opzioni è disponibile nella tts.speak di seguito. Non tutti i motori di sintesi vocale supportano tutte le opzioni.
Per rilevare gli errori e assicurarti di chiamare speak() correttamente, passa una funzione di callback che non accetta argomenti. All'interno del callback, controlla runtime.lastError per vedere se si sono verificati errori.
chrome.tts.speak(
utterance,
options,
function() {
if (chrome.runtime.lastError) {
console.log('Error: ' + chrome.runtime.lastError.message);
}
}
);
Il callback viene restituito immediatamente, prima che il motore abbia iniziato a generare la voce. Lo scopo del callback è avvisarti di errori di sintassi nell'utilizzo dell'API TTS, non di rilevare tutti i possibili errori che potrebbero verificarsi nel processo di sintesi e output del parlato. Per rilevare anche questi errori, devi utilizzare un listener di eventi, descritto di seguito.
In ascolto di eventi
Per ricevere maggiori informazioni in tempo reale sullo stato della sintesi vocale, passa un listener di eventi nelle opzioni a speak(), in questo modo:
chrome.tts.speak(
utterance,
{
onEvent: function(event) {
console.log('Event ' + event.type + ' at position ' + event.charIndex);
if (event.type == 'error') {
console.log('Error: ' + event.errorMessage);
}
}
},
callback
);
Ogni evento include un tipo di evento, l'indice dei caratteri del discorso corrente relativo all'enunciato e, per gli eventi di errore, un messaggio di errore facoltativo. I tipi di eventi sono:
'start': il motore ha iniziato a pronunciare l'enunciato.'word': è stato raggiunto un confine di parola. Utilizzaevent.charIndexper determinare la posizione corrente della sintesi vocale.'sentence': è stato raggiunto un limite di frase. Utilizzaevent.charIndexper determinare la posizione corrente della sintesi vocale.'marker': è stato raggiunto un indicatore SSML. Utilizzaevent.charIndexper determinare la posizione corrente della sintesi vocale.'end': il motore ha terminato la pronuncia dell'enunciato.'interrupted': questa espressione è stata interrotta da un'altra chiamata aspeak()ostop()e non è stata completata.'cancelled': questa frase è stata messa in coda, ma poi annullata da un'altra chiamata aspeak()ostop()e non è mai stata pronunciata.'error': si è verificato un errore specifico del motore e non è possibile pronunciare questo enunciato. Per i dettagli, visita la paginaevent.errorMessage.
Quattro dei tipi di eventi, 'end', 'interrupted', 'cancelled' e 'error', sono finali. Dopo la ricezione di uno di questi eventi, questo enunciato non verrà più pronunciato e non verranno ricevuti nuovi eventi da questo enunciato.
Alcune voci potrebbero non supportare tutti i tipi di eventi e altre potrebbero non inviare alcun evento. Se non vuoi utilizzare una voce a meno che non invii determinati eventi, passa gli eventi richiesti nel membro requiredEventTypes dell'oggetto options o utilizza getVoices() per scegliere una voce che soddisfi i tuoi requisiti. Entrambe le modalità sono documentate di seguito.
Markup SSML
Le espressioni utilizzate in questa API possono includere il markup utilizzando il linguaggio di markup della sintesi vocale (SSML). Se utilizzi SSML, il primo argomento di speak() deve essere un documento SSML completo con un'intestazione XML e un tag <speak> di primo livello, non un frammento di documento.
Ad esempio:
chrome.tts.speak(
'<?xml version="1.0"?>' +
'<speak>' +
' The <emphasis>second</emphasis> ' +
' word of this sentence was emphasized.' +
'</speak>'
);
Non tutti i motori di sintesi vocale supportano tutti i tag SSML e alcuni potrebbero non supportare affatto SSML, ma tutti i motori devono ignorare qualsiasi SSML non supportato e pronunciare comunque il testo sottostante.
Scelta di una voce
Per impostazione predefinita, Chrome sceglie la voce più appropriata per ogni frase che vuoi pronunciare, in base alla lingua. Sulla maggior parte dei sistemi Windows, Mac OS X e ChromeOS, la sintesi vocale fornita dal sistema operativo dovrebbe essere in grado di leggere qualsiasi testo in almeno una lingua. Tuttavia, alcuni utenti potrebbero avere a disposizione una varietà di voci dal proprio sistema operativo e dai motori di sintesi vocale implementati da altre estensioni di Chrome. In questi casi, puoi implementare un codice personalizzato per scegliere la voce appropriata o per presentare all'utente un elenco di scelte.
Per ottenere un elenco di tutte le voci, chiama getVoices() e passagli una funzione che riceve un array di oggetti TtsVoice come argomento:
chrome.tts.getVoices(
function(voices) {
for (var i = 0; i < voices.length; i++) {
console.log('Voice ' + i + ':');
console.log(' name: ' + voices[i].voiceName);
console.log(' lang: ' + voices[i].lang);
console.log(' extension id: ' + voices[i].extensionId);
console.log(' event types: ' + voices[i].eventTypes);
}
}
);
Tipi
EventType
Enum
"start"
"end"
"word"
"sentence"
"marker"
"interrupted"
"cancelled"
"error"
"pause"
"riprendi"
TtsEvent
Un evento del motore TTS per comunicare lo stato di un enunciato.
Proprietà
-
charIndex
number optional
L'indice del carattere corrente nell'enunciato. Per gli eventi di parole, l'evento viene attivato alla fine di una parola e prima dell'inizio della successiva.
charIndexrappresenta un punto nel testo all'inizio della parola successiva da pronunciare. -
errorMessage
stringa facoltativa
La descrizione dell'errore, se il tipo di evento è
error. -
lunghezza
number optional
Chrome 74 e versioni successiveLa lunghezza della parte successiva dell'enunciato. Ad esempio, in un evento
word, questa è la lunghezza della parola che verrà pronunciata successivamente. Se non viene impostato dal motore di sintesi vocale, il valore sarà -1. -
tipo
Il tipo può essere
startnon appena inizia il parlato,wordquando viene raggiunto un limite di parola,sentencequando viene raggiunto un limite di frase,markerquando viene raggiunto un elemento di contrassegno SSML,endquando viene raggiunta la fine dell'enunciato,interruptedquando l'enunciato viene interrotto o sospeso prima di raggiungere la fine,cancelledquando viene rimosso dalla coda prima di essere sintetizzato oerrorquando si verifica un altro errore. Quando metti in pausa la sintesi vocale, viene attivato un eventopausese un determinato enunciato viene messo in pausa nel mezzo eresumese un enunciato riprende la sintesi vocale. Tieni presente che gli eventi di pausa e ripresa potrebbero non essere attivati se la sintesi vocale viene messa in pausa tra un enunciato e l'altro.
TtsOptions
Le opzioni di sintesi vocale per il motore TTS.
Proprietà
-
desiredEventTypes
string[] facoltativo
I tipi di eventi TTS che ti interessa ascoltare. Se non viene specificato, potrebbero essere inviati tutti i tipi di eventi.
-
enqueue
boolean facoltativo
Se true, mette in coda questo enunciato se la sintesi vocale è già in corso. Se impostato su false (impostazione predefinita), interrompe l'eventuale parlato in corso e svuota la coda del parlato prima di pronunciare questo nuovo enunciato.
-
extensionId
stringa facoltativa
L'ID estensione del motore di sintesi vocale da utilizzare, se noto.
-
gender
VoiceGender facoltativo
Ritirato da Chrome 77Il genere è deprecato e verrà ignorato.
Genere della voce per la sintesi vocale.
-
lang
stringa facoltativa
La lingua da utilizzare per la sintesi, nel formato lingua-regione. Esempi: "en", "en-US", "en-GB", "zh-CN".
-
diamante
number optional
Tonalità della voce compresa tra 0 e 2 inclusi, dove 0 è la più bassa e 2 è la più alta. 1.0 corrisponde al tono predefinito di una voce.
-
velocità di reazione
number optional
Velocità di pronuncia rispetto alla velocità predefinita per questa voce. 1.0 è la velocità predefinita, normalmente compresa tra 180 e 220 parole al minuto. 2.0 è il doppio della velocità e 0.5 è la metà della velocità. I valori inferiori a 0,1 o superiori a 10,0 non sono assolutamente consentiti, ma molte voci limiteranno ulteriormente le velocità minime e massime. Ad esempio, una determinata voce potrebbe non parlare effettivamente più velocemente di 3 volte il normale anche se specifichi un valore superiore a 3,0.
-
requiredEventTypes
string[] facoltativo
I tipi di eventi TTS che la voce deve supportare.
-
voiceName
stringa facoltativa
Il nome della voce da utilizzare per la sintesi. Se il campo è vuoto, viene utilizzata qualsiasi voce disponibile.
-
volume
number optional
Volume della voce compreso tra 0 e 1 inclusi, dove 0 è il volume più basso e 1 è il volume più alto, con un valore predefinito di 1,0.
-
onEvent
void optional
Questa funzione viene chiamata con gli eventi che si verificano durante il processo di pronuncia dell'enunciato.
La funzione
onEventha il seguente aspetto:(event: TtsEvent) => {...}
-
evento
L'evento di aggiornamento del motore di sintesi vocale che indica lo stato di questo enunciato.
-
TtsVoice
Una descrizione di una voce disponibile per la sintesi vocale.
Proprietà
-
eventTypes
EventType[] facoltativo
Tutti i tipi di eventi di callback che questa voce è in grado di inviare.
-
extensionId
stringa facoltativa
L'ID dell'estensione che fornisce questa voce.
-
gender
VoiceGender facoltativo
Ritirato da Chrome 70Il genere è deprecato e verrà ignorato.
Il genere di questa voce.
-
lang
stringa facoltativa
La lingua supportata da questa voce, nel formato lingua-regione. Esempi: "en", "en-US", "en-GB", "zh-CN".
-
telecomando
boolean facoltativo
Se il valore è true, il motore di sintesi è una risorsa di rete remota. Potrebbe avere una latenza più elevata e comportare costi di larghezza di banda.
-
voiceName
stringa facoltativa
Il nome della voce.
VoiceGender
Il genere è deprecato e viene ignorato.
Enum
"male"
"female"
Metodi
getVoices()
chrome.tts.getVoices(
callback?: function,
): Promise<TtsVoice[]>
Restituisce un array di tutte le voci disponibili.
Parametri
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(voices: TtsVoice[]) => void
-
voci
TtsVoice[]
Array di oggetti
tts.TtsVoiceche rappresentano le voci disponibili per la sintesi vocale.
-
Resi
-
Promise<TtsVoice[]>
Chrome 101 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
isSpeaking()
chrome.tts.isSpeaking(
callback?: function,
): Promise<boolean>
Controlla se il motore sta parlando. Su Mac OS X, il risultato è true ogni volta che il motore di sintesi vocale del sistema sta parlando, anche se la sintesi vocale non è stata avviata da Chrome.
Parametri
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:(speaking: boolean) => void
-
speaking
booleano
True se l'utente sta parlando, altrimenti False.
-
Resi
-
Promise<boolean>
Chrome 101 e versioni successiveLe promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
pause()
chrome.tts.pause(): void
Mette in pausa la sintesi vocale, potenzialmente nel mezzo di un enunciato. Un comando per riprendere o interrompere la lettura vocale annullerà la pausa.
resume()
chrome.tts.resume(): void
Se la lettura vocale è stata messa in pausa, riprende da dove era stata interrotta.
speak()
chrome.tts.speak(
utterance: string,
options?: TtsOptions,
callback?: function,
): Promise<void>
Pronuncia il testo utilizzando un motore di sintesi vocale.
Parametri
-
utterance
stringa
Il testo da pronunciare, in formato testo normale o un documento SSML completo e ben formato. I motori di sintesi vocale che non supportano SSML rimuoveranno i tag e leggeranno il testo. La lunghezza massima del testo è di 32.768 caratteri.
-
opzioni
TtsOptions facoltativo
Le opzioni di sintesi vocale.
-
callback
funzione elemento facoltativo
Il parametro
callbackha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 101 e versioni successiveViene risolto immediatamente, prima che l'utente finisca di parlare. Se si verifica un errore, la promise verrà rifiutata. Utilizza options.onEvent per ricevere un feedback più dettagliato.
Le promise sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
stop()
chrome.tts.stop(): void
Interrompe l'eventuale sintesi vocale in corso e svuota la coda di eventuali espressioni in attesa. Inoltre, se la sintesi vocale era stata messa in pausa, verrà riattivata per la chiamata successiva.
Eventi
onVoicesChanged
chrome.tts.onVoicesChanged.addListener(
callback: function,
)
Viene chiamato quando l'elenco di tts.TtsVoice che verrebbe restituito da getVoices è cambiato.
Parametri
-
callback
funzione
Il parametro
callbackha il seguente aspetto:() => void