chrome.ttsEngine

refresh date: 2026-09-25 robots: noindex

Açıklama

Uzantı kullanarak metin okuma(TTS) motoru uygulamak için chrome.ttsEngine API'sini kullanın. Uzantınız bu API'yi kullanarak kaydolursa herhangi bir uzantı veya Chrome uygulaması konuşma oluşturmak için tts API'sini kullandığında, konuşulacak bir ifade ve diğer parametreleri içeren etkinlikler alır. Uzantınız daha sonra konuşmayı sentezlemek ve çıkışını yapmak için mevcut web teknolojilerini kullanabilir ve durumu bildirmek için etkinlikleri çağıran işleve geri gönderebilir.

İzinler

ttsEngine

Genel Bakış

Uzantılar kendilerini konuşma motoru olarak kaydedebilir. Bunu yaparak tts.speak ve tts.stop gibi işlevlere yapılan bazı veya tüm çağrıları yakalayabilir ve alternatif bir uygulama sağlayabilir. Uzantılar, konuşma sağlamak için sunucudan ses akışı ve HTML5 ses dahil olmak üzere mevcut tüm web teknolojilerini ücretsiz olarak kullanabilir. Uzantılar, ifadelerle farklı işlemler de yapabilir. Örneğin, açılan pencerede altyazı görüntüleyebilir veya bunları uzak sunucuya günlük mesajları olarak gönderebilir.

Manifest

Bir TTS motoru uygulamak için uzantının "ttsEngine" iznini tanımlaması ve ardından sağladığı tüm sesleri uzantı manifestinde aşağıdaki gibi tanımlaması gerekir:

{
  "name": "My TTS Engine",
  "version": "1.0",
  "permissions": ["ttsEngine"],
  "tts_engine": {
    "voices": [
      {
        "voice_name": "Alice",
        "lang": "en-US",
        "event_types": ["start", "marker", "end"]
      },
      {
        "voice_name": "Pat",
        "lang": "en-US",
        "event_types": ["end"]
      }
    ]
  },
  "background": {
    "page": "background.html",
    "persistent": false
  }
}

Bir uzantı, istediği sayıda ses belirtebilir.

voice_name parametresi zorunludur. Ad, sesin adını ve kullanılan motoru tanımlayacak kadar açıklayıcı olmalıdır. İki uzantının aynı adla ses kaydettiği nadir durumlarda, istemci sentezi yapacak uzantının kimliğini belirtebilir.

lang parametresi isteğe bağlıdır ancak kesinlikle önerilir. Sesler neredeyse her zaman konuşmayı tek bir dilde sentezleyebilir. Bir motor birden fazla dili desteklediğinde her dil için ayrı bir ses kolayca kaydedilebilir. Tek bir sesin birden fazla dili destekleyebildiği nadir durumlarda, iki ayrı sesi listelemek ve bunları dahili olarak aynı mantıkla işlemek en kolay yöntemdir. Ancak, herhangi bir dildeki ifadeleri işleyecek bir ses oluşturmak istiyorsanız lang parametresini uzantınızın manifest dosyasından çıkarın.

Son olarak, motor, müşteriyi konuşma sentezinin ilerleme durumu hakkında bilgilendirmek için etkinlik gönderebiliyorsa event_types parametresi gereklidir. Konuşmanın ne zaman bittiğini belirtmek için en azından 'end' etkinlik türünün desteklenmesi önemle tavsiye edilir. Aksi takdirde Chrome, sıraya alınmış ifadeleri planlayamaz.

Yüklendikten sonra bir uzantı, chrome.ttsEngine.updateVoices işlevini çağırarak beyan edilen seslerin listesini değiştirebilir. (updateVoices için yapılan programatik çağrıda kullanılan parametrelerin, voice_name kullanan manifest dosyasının aksine, camel case biçiminde olduğunu unutmayın: örneğin, voiceName.)

Gönderebileceğiniz olası etkinlik türleri, speak() yönteminin aldığı etkinlik türlerine karşılık gelir:

  • 'start': Motor, ifadeyi okumaya başladı.
  • 'word': Kelime sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex öğesini kullanın.
  • 'sentence': Cümle sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex simgesini kullanın.
  • 'marker': Bir SSML işaretçisine ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex öğesini kullanın.
  • 'end': Motor, ifadeyi okumayı tamamlamıştır.
  • 'error': Motora özgü bir hata oluştu ve bu ifade okunamıyor. event.errorMessage içinde daha fazla bilgi iletin.

'interrupted' ve 'cancelled' etkinlikleri konuşma motoru tarafından gönderilmez, Chrome tarafından otomatik olarak oluşturulur.

Konuşma sentezi istemcileri, konuşma etkinliği dinleyicilerini aşağıda açıklandığı şekilde kaydettiyseniz tts.getVoices işlevini çağırarak uzantınızın manifest dosyasından ses bilgilerini alabilir.

Konuşma etkinliklerini işleme

Müşterilerin isteği üzerine konuşma oluşturmak için uzantınızın hem onSpeak hem de onStop için dinleyicileri aşağıdaki gibi kaydetmesi gerekir:

const speakListener = (utterance, options, sendTtsEvent) => {
  sendTtsEvent({type: 'start', charIndex: 0})

  // (start speaking)

  sendTtsEvent({type: 'end', charIndex: utterance.length})
};

const stopListener = () => {
  // (stop all speech)
};

chrome.ttsEngine.onSpeak.addListener(speakListener);
chrome.ttsEngine.onStop.addListener(stopListener);

Belirli bir konuşma isteğinin uzantıya gönderilip gönderilmeyeceği kararı yalnızca uzantının, manifest dosyasında belirtilen ses parametrelerini destekleyip desteklemediğine ve onSpeak ile onStop için dinleyici kaydının yapılıp yapılmadığına bağlıdır. Diğer bir deyişle, uzantıların konuşma isteği alıp bunu işleyip işlemeyeceğine dinamik olarak karar vermesi mümkün değildir.

Türler

AudioBuffer

Chrome 92 veya daha yeni bir sürüm

Ses arabelleği ve ilişkili verileri içeren parametreler.

Özellikler

  • audioBuffer

    ArrayBuffer

    Metin okuma motorundan gelen ses arabelleği. Uzunluğu tam olarak audioStreamOptions.bufferSize olmalı, audioStreamOptions.sampleRate hızında ve doğrusal PCM olarak (32 bit imzalı kayan nokta) yani JavaScript'teki Float32Array türünde mono olarak kodlanmalıdır.

  • charIndex

    number isteğe bağlı

    Bu ses arabelleğiyle ilişkili karakter dizini.

  • isLastBuffer

    boolean isteğe bağlı

    Bu ses arabelleği, konuşulan metnin son arabelleği ise doğru değerini döndürür.

AudioStreamOptions

Chrome 92 veya daha yeni bir sürüm

Bir motor tarafından üretilmesi beklenen ses akışı biçimini içerir.

Özellikler

  • bufferSize

    sayı

    Ses arabelleğindeki örnek sayısı.

  • sampleRate

    sayı

    Ses arabelleğinde beklenen örnekleme hızı.

LanguageInstallStatus

Chrome 132 veya daha yeni bir sürüm

Sesin yükleme durumu.

Enum

"notInstalled"

"yükleniyor"

"installed"

"failed"

LanguageStatus

Chrome 132 veya daha yeni bir sürüm

Dilin yükleme durumu.

Özellikler

  • hata

    dize isteğe bağlı

    Yükleme hatalarıyla ilgili ayrıntılar. Dil yüklenemezse isteğe bağlı olarak doldurulur.

  • installStatus

    Yükleme durumu.

  • lang

    dize

    Dil kodu-bölge kodu biçiminde dil dizesi. Bölge kodu atlanabilir. Örnekler: en, en-AU, zh-CH.

LanguageUninstallOptions

Chrome 132 veya daha yeni bir sürüm

Belirli bir dili kaldırma seçenekleri.

Özellikler

  • uninstallImmediately

    boole

    TTS istemcisi dilin hemen kaldırılmasını istiyorsa doğru değerini alır. Motor, bu parametreye ve istekte bulunanın bilgilerine göre dili kaldırıp kaldırmayacağına veya ne zaman kaldıracağına karar verebilir. Yanlışsa kaldırma zamanını belirlemek için son kullanım gibi başka ölçütler kullanabilir.

SpeakOptions

Chrome 92 veya daha yeni bir sürüm

tts.speak() yönteminde belirtilen seçenekler.

Özellikler

  • gender

    VoiceGender isteğe bağlı

    Chrome 92'den beri kullanımdan kaldırıldı

    Cinsiyet artık kullanılmıyor ve yoksayılacak.

    Sentezlenmiş konuşma için sesin cinsiyeti.

  • lang

    dize isteğe bağlı

    Sentez için kullanılacak dil, dil-bölge biçiminde. Örnekler: "en", "en-US", "en-GB", "zh-CN".

  • şarkı önerisi

    number isteğe bağlı

    Konuşma perdesi 0 ile 2 arasında olmalıdır. 0 en düşük, 2 ise en yüksek perdedir. 1,0, bu sesin varsayılan perdesine karşılık gelir.

  • hız

    number isteğe bağlı

    Bu ses için varsayılan hıza göre konuşma hızı. Varsayılan hız 1.0'dır ve normalde dakikada yaklaşık 180-220 kelimeye karşılık gelir. 2,0 değeri iki kat hızlı, 0,5 değeri ise yarı hızlıdır. Bu değerin 0,1 ile 10,0 arasında (bu değerler dahil) olduğu garanti edilir. Bir ses bu hız aralığının tamamını desteklemediğinde hata döndürmeyin. Bunun yerine, hızı sesin desteklediği aralığa kırpın.

  • voiceName

    dize isteğe bağlı

    Sentez için kullanılacak sesin adı.

  • ses düzeyi

    number isteğe bağlı

    Konuşma ses seviyesi 0 ile 1 arasında olmalıdır (0 en düşük, 1 en yüksek değerdir ve varsayılan değer 1, 0'dır).

TtsClient

Chrome 131 veya daha yeni bir sürüm

Durum isteyen istemcinin tanımlayıcısı.

Özellikler

  • id

    dize

    Dil yönetimi isteğinde bulunan istemci. Uzantılar için bu, benzersiz uzantı kimliğidir. Chrome özellikleri için bu, özelliğin kullanıcılar tarafından okunabilen adıdır.

  • Talep gönderenin türü.

TtsClientSource

Chrome 131 veya daha yeni bir sürüm

Talep gönderenin türü.

Enum

"chromefeature"

"extension"

VoiceGender

Chrome 54 ve sonraki sürümler Chrome 70'ten itibaren kullanımdan kaldırıldı

Cinsiyet artık kullanılmıyor ve yoksayılacak.

Enum

"male"

"female"

Yöntemler

updateLanguage()

Chrome 132 veya daha yeni bir sürüm
chrome.ttsEngine.updateLanguage(
  status: LanguageStatus,
)
: void

Bir dil yükleme işlemi denenirken ve bir dil kaldırılırken motor tarafından çağrılır. Ayrıca bir istemciden gelen durum isteğine yanıt olarak da çağrılır. Bir ses yüklendiğinde veya kaldırıldığında motor, sesi kaydetmek için ttsEngine.updateVoices'ı da çağırmalıdır.

Parametreler

updateVoices()

Chrome 66 ve sonraki sürümler
chrome.ttsEngine.updateVoices(
  voices: TtsVoice[],
)
: void

Ses listesini güncellemek için bir motor tarafından çağrılır. Bu liste, uzantının manifest dosyasında belirtilen tüm sesleri geçersiz kılar.

Parametreler

  • sesler

    Konuşma sentezi için kullanılabilen sesleri temsil eden tts.TtsVoice nesneleri dizisi.

Etkinlikler

onInstallLanguageRequest

Chrome 131 veya daha yeni bir sürüm
chrome.ttsEngine.onInstallLanguageRequest.addListener(
  callback: function,
)

Bir TTS istemcisi yeni bir dil yüklemek istediğinde tetiklenir. Motor, dili indirmeye ve yüklemeye çalışmalı ve sonuçla birlikte ttsEngine.updateLanguage'i çağırmalıdır. Başarılı olursa motor, yeni kullanılabilir sesleri kaydetmek için ttsEngine.updateVoices'i de çağırmalıdır.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (requestor: TtsClient, lang: string) => void

onLanguageStatusRequest

Chrome 132 veya daha yeni bir sürüm
chrome.ttsEngine.onLanguageStatusRequest.addListener(
  callback: function,
)

Bir TTS istemcisi, dilin yükleme durumunu istediğinde tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (requestor: TtsClient, lang: string) => void

onPause

chrome.ttsEngine.onPause.addListener(
  callback: function,
)

İsteğe bağlı: Bir motor, duraklatma etkinliğini destekliyorsa devam ettirme veya durdurma etkinliği alana kadar, varsa konuşulan mevcut ifadeyi duraklatmalıdır. Durdurma etkinliğinin, duraklatılmış durumu da temizlemesi gerektiğini unutmayın.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    () => void

onResume

chrome.ttsEngine.onResume.addListener(
  callback: function,
)

İsteğe bağlı: Bir motor, duraklatma etkinliğini destekliyorsa mevcut ifadeyi (varsa) okumaya devam etmek için devam ettirme etkinliğini de desteklemelidir. Durdurma etkinliğinin, duraklatılmış durumu da temizlemesi gerektiğini unutmayın.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    () => void

onSpeak

chrome.ttsEngine.onSpeak.addListener(
  callback: function,
)

Kullanıcı tts.speak() işlevini aradığında ve bu uzantının manifest dosyasındaki seslerden biri seçenekler nesnesiyle ilk eşleşen olduğunda çağrılır.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (utterance: string, options: SpeakOptions, sendTtsEvent: function) => void

    • ifade

      dize

    • seçenekler
    • sendTtsEvent

      işlev

      sendTtsEvent parametresi şu şekilde görünür:

      (event: tts.TtsEvent) => void

      • etkinlik

        Metin okuma motorundan gelen ve bu ifadenin durumunu belirten etkinlik.

onSpeakWithAudioStream

Chrome 92 veya daha yeni bir sürüm
chrome.ttsEngine.onSpeakWithAudioStream.addListener(
  callback: function,
)

Kullanıcı tts.speak() işlevini aradığında ve bu uzantının manifest dosyasındaki seslerden biri seçenekler nesnesiyle ilk eşleşen olduğunda çağrılır. Chrome'un ses oynatma hizmetleri sağlaması ve tts etkinliklerinin gönderilmesini yönetmesi nedeniyle ttsEngine.onSpeak'ten farklıdır.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (utterance: string, options: SpeakOptions, audioStreamOptions: AudioStreamOptions, sendTtsAudio: function, sendError: function) => void

    • ifade

      dize

    • seçenekler
    • audioStreamOptions
    • sendTtsAudio

      işlev

      sendTtsAudio parametresi şu şekilde görünür:

      (audioBufferParams: AudioBuffer) => void

      • audioBufferParams

        Ses arabelleği ve ilişkili verileri içeren parametreler.

    • sendError

      işlev

      Chrome 94 ve sonraki sürümler

      sendError parametresi şu şekilde görünür:

      (errorMessage?: string) => void

      • errorMessage

        dize isteğe bağlı

        Hatayı açıklayan bir dize.

onStop

chrome.ttsEngine.onStop.addListener(
  callback: function,
)

tts.stop çağrısı yapıldığında tetiklenir ve bu uzantı konuşuyor olabilir. Bir uzantı, onStop çağrısı aldığında ve konuşma zaten durdurulmuşsa hiçbir şey yapmamalıdır (hata oluşturmamalıdır). Konuşma duraklatılmış durumdaysa bu işlem duraklatılmış durumu iptal etmelidir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    () => void

onUninstallLanguageRequest

Chrome 132 veya daha yeni bir sürüm
chrome.ttsEngine.onUninstallLanguageRequest.addListener(
  callback: function,
)

Bir TTS istemcisi, bir dilin artık gerekli olmadığını belirttiğinde tetiklenir.

Parametreler