refresh date: 2026-09-25 robots: noindex
Açıklama
Sentezlenmiş metin okuma (TTS) sesini çalmak için chrome.tts API'yi kullanın. Uzantıların konuşma motoru uygulamasını sağlayan ilgili ttsEngine API'sini de inceleyin.
İzinler
ttsGenel Bakış
Chrome, işletim sisteminin sağladığı konuşma sentezi özelliklerini kullanarak Windows (SAPI 5 kullanarak), Mac OS X ve ChromeOS'te konuşma için yerel destek sağlar. Tüm platformlarda kullanıcı, kendilerini alternatif konuşma motorları olarak kaydeden uzantılar yükleyebilir.
Konuşma oluşturuluyor
Konuşmak için dahili numaranızdan speak() numarasını arayın. Örneğin:
chrome.tts.speak('Hello, world.');
Konuşmayı hemen durdurmak için stop() demeniz yeterli:
chrome.tts.stop();
Konuşmanın hızı ve ses perdesi gibi çeşitli özelliklerini kontrol eden seçenekler sunabilirsiniz. Örneğin:
chrome.tts.speak('Hello, world.', {'rate': 2.0});
Ayrıca, bu dili (ve varsa bölgesel lehçeyi) destekleyen bir sentezleyicinin seçilmesi için dili belirtmek de iyi bir fikirdir.
chrome.tts.speak('Hello, world.', {'lang': 'en-US', 'rate': 2.0});
Varsayılan olarak, speak() için yapılan her çağrı, devam eden konuşmaları keser ve hemen konuşmaya başlar. Aramanın herhangi bir şeyi kesintiye uğratıp uğratmayacağını belirlemek için isSpeaking() yöntemini çağırabilirsiniz. Ayrıca, bu ifadenin, mevcut ifade bittiğinde söylenecek ifadeler sırasına eklenmesi için enqueue seçeneğini kullanabilirsiniz.
chrome.tts.speak('Speak this first.');
chrome.tts.speak(
'Speak this next, when the first sentence is done.', {'enqueue': true});
Tüm seçeneklerin tam açıklamasını aşağıdaki tts.speak bölümünde bulabilirsiniz. Tüm konuşma motorları tüm seçenekleri desteklemez.
Hataları yakalamak ve speak() işlevini doğru şekilde çağırdığınızdan emin olmak için bağımsız değişken içermeyen bir geri çağırma işlevi iletin. Geri çağırma işlevinde, hata olup olmadığını görmek için runtime.lastError değerini kontrol edin.
chrome.tts.speak(
utterance,
options,
function() {
if (chrome.runtime.lastError) {
console.log('Error: ' + chrome.runtime.lastError.message);
}
}
);
Geri çağırma, motor konuşma oluşturmaya başlamadan hemen önce döndürülür. Geri çağırma işlevinin amacı, TTS API kullanımınızdaki söz dizimi hataları konusunda sizi uyarmaktır. Konuşma sentezleme ve çıkış oluşturma sürecinde ortaya çıkabilecek tüm olası hataları yakalamak değildir. Bu hataları da yakalamak için aşağıda açıklanan etkinlik işleyiciyi kullanmanız gerekir.
Etkinlikler dinleniyor
Sentezlenen konuşmanın durumu hakkında daha fazla anlık bilgi almak için seçeneklerde speak() yöntemine bir etkinlik işleyici iletin. Örneğin:
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
);
Her etkinlikte bir etkinlik türü, mevcut konuşmanın ifadeye göre karakter dizini ve hata etkinlikleri için isteğe bağlı bir hata mesajı bulunur. Etkinlik türleri şunlardır:
'start': Motor, ifadeyi seslendirmeye başladı.'word': Kelime sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek içinevent.charIndexkullanın.'sentence': Cümle sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek içinevent.charIndexkullanın.'marker': Bir SSML işaretçisine ulaşıldı. Mevcut konuşma konumunu belirlemek içinevent.charIndexkullanın.'end': Motor, ifadeyi seslendirmeyi tamamladı.'interrupted': Bu ifade,speak()veyastop()için yapılan başka bir çağrı tarafından kesintiye uğradı ve tamamlanmadı.'cancelled': Bu ifade sıraya alındı ancak daha sonraspeak()veyastop()için yapılan başka bir çağrı tarafından iptal edildi ve hiç konuşmaya başlamadı.'error': Motora özgü bir hata oluştu ve bu ifade seslendirilemiyor. Ayrıntılar içinevent.errorMessagesayfasını ziyaret edin.
Etkinlik türlerinden dördü ('end', 'interrupted', 'cancelled' ve 'error') kesindir. Bu etkinliklerden biri alındıktan sonra bu söz artık konuşmaz ve bu sözden yeni etkinlik alınmaz.
Bazı sesler tüm etkinlik türlerini desteklemeyebilir ve bazı sesler hiç etkinlik göndermeyebilir. Belirli etkinlikleri göndermeyen bir sesi kullanmak istemiyorsanız seçenekler nesnesinin requiredEventTypes üyesinde gerekli etkinlikleri iletin veya gereksinimlerinizi karşılayan bir ses seçmek için getVoices() kullanın. Her iki yöntem de aşağıda açıklanmıştır.
SSML işaretlemesi
Bu API'de kullanılan ifadeler, Konuşma Sentezi Biçimlendirme Dili (SSML) kullanılarak biçimlendirme içerebilir. SSML kullanıyorsanız speak() için ilk bağımsız değişken, bir doküman parçası değil, XML üstbilgisi ve üst düzey <speak> etiketi içeren eksiksiz bir SSML dokümanı olmalıdır.
Örneğin:
chrome.tts.speak(
'<?xml version="1.0"?>' +
'<speak>' +
' The <emphasis>second</emphasis> ' +
' word of this sentence was emphasized.' +
'</speak>'
);
Tüm konuşma motorları tüm SSML etiketlerini desteklemez ve bazıları SSML'yi hiç desteklemeyebilir ancak tüm motorların, desteklemedikleri SSML'leri yoksayması ve temel metni seslendirmesi gerekir.
Ses seçme
Varsayılan olarak Chrome, söylemek istediğiniz her ifade için dile göre en uygun sesi seçer. Çoğu Windows, Mac OS X ve ChromeOS sisteminde, işletim sistemi tarafından sağlanan konuşma sentezi, herhangi bir metni en az bir dilde okuyabilir. Ancak bazı kullanıcılar, işletim sistemlerinden ve diğer Chrome uzantıları tarafından uygulanan konuşma motorlarından çeşitli sesler kullanabilir. Bu gibi durumlarda, uygun sesi seçmek veya kullanıcıya bir seçenek listesi sunmak için özel kod uygulayabilirsiniz.
Tüm seslerin listesini almak için getVoices() işlevini çağırın ve bağımsız değişken olarak TtsVoice nesnelerinden oluşan bir dizi alan bir işlev iletin:
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);
}
}
);
Türler
EventType
Enum
"start"
"end"
"word"
"sentence"
"marker"
"interrupted"
"cancelled"
"error"
"pause"
"resume"
TtsEvent
TTS motorundan gelen ve bir ifadenin durumunu bildiren etkinlik.
Özellikler
-
charIndex
number isteğe bağlı
Sözdeki mevcut karakterin dizini. Kelime etkinliklerinde etkinlik, bir kelimenin sonunda ve bir sonraki kelimenin başlangıcından önce tetiklenir.
charIndex, metinde söylenecek bir sonraki kelimenin başındaki bir noktayı temsil eder. -
errorMessage
string isteğe bağlı
Etkinlik türü
errorise hatanın açıklaması. -
uzunluk
number isteğe bağlı
Chrome 74 ve sonraki sürümlerSözün bir sonraki bölümünün uzunluğu. Örneğin, bir
wordetkinliğinde bu, bir sonraki söylenecek kelimenin uzunluğudur. Konuşma motoru tarafından ayarlanmazsa -1 olarak ayarlanır. -
tür
Tür, konuşma başladığında
start, bir kelime sınırına ulaşıldığındaword, bir cümle sınırına ulaşıldığındasentence, bir SSML işaret öğesine ulaşıldığındamarker, ifadenin sonuna ulaşıldığındaend, ifade sona ulaşmadan önce durdurulduğunda veya kesintiye uğradığındainterrupted, sentezlenmeden önce sıradan kaldırıldığındacancelledveya başka bir hata oluştuğundaerrorolabilir. Konuşma duraklatıldığında, belirli bir ifade ortasında duraklatılırsapauseetkinliği, ifade konuşmaya devam ederseresumeetkinliği tetiklenir. Konuşma, ifadeler arasında duraklatılırsa duraklatma ve devam ettirme etkinliklerinin tetiklenmeyebileceğini unutmayın.
TtsOptions
TTS motoru için konuşma seçenekleri.
Özellikler
-
desiredEventTypes
string[] isteğe bağlı
Dinlemek istediğiniz TTS etkinlik türleri. Eksikse tüm etkinlik türleri gönderilebilir.
-
enqueue
boole isteğe bağlı
Doğru ise TTS zaten devam ediyorsa bu ifadeyi sıraya alır. Yanlış ise (varsayılan) mevcut konuşmayı keser ve bu yeni ifadeyi söylemeden önce konuşma sırasını temizler.
-
extensionId
string isteğe bağlı
Kullanılacak konuşma motorunun uzantı kimliği (biliniyorsa).
-
gender
VoiceGender isteğe bağlı
Chrome 77'den itibaren desteği sonlandırıldıCinsiyet özelliği kullanımdan kaldırılmıştır ve yok sayılacaktır.
Sentezlenmiş konuşma için sesin cinsiyeti.
-
lang
string isteğe bağlı
Sentez için kullanılacak dil. dil-bölge biçiminde olmalıdır. Örnekler: "en", "en-US", "en-GB", "zh-CN".
-
şarkı önerisi
number isteğe bağlı
0 ile 2 arasında (0 ve 2 dahil) konuşma perdesi. 0 en düşük, 2 en yüksek perdeyi temsil eder. 1,0, sesin varsayılan perdesine karşılık gelir.
-
hız
number isteğe bağlı
Bu sesin varsayılan hızına göre konuşma hızı. 1, 0 varsayılan hızdır ve genellikle dakikada yaklaşık 180 ila 220 kelimedir. 2,0 iki kat daha hızlı, 0,5 ise yarı yarıya daha yavaştır. 0,1'in altındaki veya 10,0'un üzerindeki değerlere kesinlikle izin verilmez ancak birçok ses, minimum ve maksimum oranları daha da kısıtlar. Örneğin, belirli bir ses, 3,0'dan büyük bir değer belirtmiş olsanız bile normalden 3 kat daha hızlı konuşmayabilir.
-
requiredEventTypes
string[] isteğe bağlı
Sesin desteklemesi gereken TTS etkinlik türleri.
-
voiceName
string isteğe bağlı
Sentez için kullanılacak sesin adı. Boş bırakılırsa mevcut seslerden herhangi biri kullanılır.
-
ses düzeyi
number isteğe bağlı
Konuşma ses seviyesi 0 ile 1 arasında (0 ve 1 dahil) bir değerdir. 0 en düşük, 1 en yüksek ses seviyesini temsil eder. Varsayılan değer 1, 0'dır.
-
onEvent
void isteğe bağlı
Bu işlev, sözlü ifadenin söylenmesi sürecinde gerçekleşen etkinliklerle çağrılır.
onEventişlevi şu şekildedir:(event: TtsEvent) => {...}
-
etkinlik
Metin okuma motorundan gelen ve bu ifadenin durumunu belirten güncelleme etkinliği.
-
TtsVoice
Konuşma sentezi için kullanılabilen bir sesin açıklaması.
Özellikler
-
eventTypes
EventType[] isteğe bağlı
Bu sesin gönderebileceği tüm geri çağırma etkinliği türleri.
-
extensionId
string isteğe bağlı
Bu sesi sağlayan uzantının kimliği.
-
gender
VoiceGender isteğe bağlı
Chrome 70'ten itibaren desteği sonlandırıldıCinsiyet özelliği kullanımdan kaldırılmıştır ve yok sayılacaktır.
Bu sesin cinsiyeti.
-
lang
string isteğe bağlı
Bu sesin desteklediği dil. dil-bölge biçimindedir. Örnekler: "en", "en-US", "en-GB", "zh-CN".
-
uzaktan kumanda
boole isteğe bağlı
Doğruysa sentez motoru uzak bir ağ kaynağıdır. Gecikme süresi daha uzun olabilir ve bant genişliği maliyetleri ortaya çıkabilir.
-
voiceName
string isteğe bağlı
Sesin adı.
VoiceGender
Cinsiyet desteği sonlandırılmıştır ve yoksayılır.
Enum
"male"
"female"
Yöntemler
getVoices()
chrome.tts.getVoices(
callback?: function,
): Promise<TtsVoice[]>
Kullanılabilir tüm seslerin dizisini alır.
Parametreler
-
callback
function isteğe bağlı
callbackparametresi şu şekilde görünür:(voices: TtsVoice[]) => void
-
sesler
TtsVoice[]
Konuşma sentezi için kullanılabilen sesleri temsil eden
tts.TtsVoicenesneleri dizisi.
-
İadeler
-
Promise<TtsVoice[]>
Chrome 101+Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.
isSpeaking()
chrome.tts.isSpeaking(
callback?: function,
): Promise<boolean>
Motorun şu anda konuşup konuşmadığını kontrol eder. Mac OS X'te, konuşma Chrome tarafından başlatılmamış olsa bile sistem konuşma motoru her konuştuğunda sonuç doğrudur.
Parametreler
-
callback
function isteğe bağlı
callbackparametresi şu şekilde görünür:(speaking: boolean) => void
-
konuşma
boole
Konuşma varsa doğru, yoksa yanlış değerini döndürür.
-
İadeler
-
Promise<boolean>
Chrome 101+Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.
pause()
chrome.tts.pause(): void
Konuşma sentezini duraklatır (muhtemelen bir ifadenin ortasında). Devam ettirme veya durdurma çağrısı, konuşmayı duraklatır.
resume()
chrome.tts.resume(): void
Konuşma duraklatılmışsa kaldığı yerden devam eder.
speak()
chrome.tts.speak(
utterance: string,
options?: TtsOptions,
callback?: function,
): Promise<void>
Metin okuma motoru kullanarak metni okur.
Parametreler
-
utterance
dize
Seslendirilecek metin (düz metin veya eksiksiz, doğru biçimlendirilmiş bir SSML belgesi). SSML'yi desteklemeyen konuşma motorları, etiketleri kaldırır ve metni seslendirir. Metnin maksimum uzunluğu 32.768 karakterdir.
-
seçenekler
TtsOptions isteğe bağlı
Konuşma seçenekleri.
-
callback
function isteğe bağlı
callbackparametresi şu şekilde görünür:() => void
İadeler
-
Promise<void>
Chrome 101+Konuşma bitmeden hemen çözümlenir. Hata oluşursa promise reddedilir. Daha ayrıntılı geri bildirim almak için options.onEvent'i kullanın.
Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.
stop()
chrome.tts.stop(): void
Mevcut konuşmaları durdurur ve bekleyen tüm ifadelerin sırasını temizler. Ayrıca, konuşma duraklatıldıysa bir sonraki konuşma çağrısı için devam ettirilir.
Etkinlikler
onVoicesChanged
chrome.tts.onVoicesChanged.addListener(
callback: function,
)
getVoices tarafından döndürülecek tts.TtsVoice listesi değiştiğinde çağrılır.
Parametreler
-
callback
işlev
callbackparametresi şu şekilde görünür:() => void