chrome.ttsEngine

refresh date: 2026-09-25 robots: noindex

Açıklama

Uzantı kullanarak metin okuma(TTS) motoru uygulamak için chrome.ttsEngine API'yi kullanın. Uzantınız bu API'yi kullanarak kaydolursa herhangi bir uzantı veya Chrome uygulaması konuşma oluşturmak için tts API'yi kullandığında, söylenecek 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 herhangi bir web teknolojisini 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. Böylece, tts.speak ve tts.stop gibi işlevlere yapılan çağrıların bir kısmını veya tamamını engelleyip alternatif bir uygulama sunabilir. Uzantılar, bir sunucudan ses akışı ve HTML5 ses dahil olmak üzere konuşma sağlamak için mevcut herhangi bir web teknolojisini kullanabilir. Bir uzantı, sözcelerle farklı bir şey bile yapabilir. Örneğin, altyazıları pop-up pencerede gösterebilir veya uzak bir sunucuya günlük mesajı olarak gönderebilir.

Manifest

Bir TTS motoru uygulamak için uzantının "ttsEngine" iznini beyan etmesi ve ardından sağladığı tüm sesleri uzantı manifestinde şu şekilde beyan etmesi 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
  }
}

Uzantılar, dilediğiniz 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ı ada sahip sesleri kaydetmesi gibi düşük bir ihtimal söz konusu olduğunda istemci, sentezi yapması gereken uzantının kimliğini belirtebilir.

lang parametresi isteğe bağlıdır ancak kesinlikle önerilir. Sesler neredeyse her zaman tek bir dilde konuşma sentezleyebilir. Bir motor birden fazla dili destekliyorsa her dil için ayrı bir ses kaydedebilir. Tek bir sesin birden fazla dili işleyebildiği nadir durumlarda, iki ayrı ses 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 uzantınızın manifest dosyasından lang parametresini çıkarın.

Son olarak, motor, istemciyi 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ınan ifadeleri planlayamaz.

Yüklendikten sonra uzantı, chrome.ttsEngine.updateVoices yöntemini çağırarak tanımlanan seslerin listesini değiştirebilir. (updateVoices için programatik çağrıda kullanılan parametrelerin, voice_name kullanan manifesto dosyasının aksine camel case biçiminde olduğuna dikkat edin: ör. voiceName.)

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

  • 'start': Motor, ifadeyi seslendirmeye başladı.
  • 'word': Kelime sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex kullanın.
  • 'sentence': Cümle sınırına ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex kullanın.
  • 'marker': Bir SSML işaretçisine ulaşıldı. Mevcut konuşma konumunu belirlemek için event.charIndex kullanın.
  • 'end': Motor, ifadeyi seslendirmeyi tamamladı.
  • 'error': Motora özgü bir hata oluştu ve bu ifade seslendirilemiyor. 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.

Metin okuma istemcileri, konuşma etkinliği işleyicileri aşağıda açıklandığı şekilde kaydettiğinizi varsayarak tts.getVoices yöntemini çağırıp uzantınızın manifest dosyasından ses bilgilerini alabilir.

Konuşma etkinliklerini işleme

Uzantınızın, istemcilerin isteği üzerine konuşma oluşturması için hem onSpeak hem de onStop için dinleyicileri şu şekilde 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 bir uzantıya gönderilip gönderilmeyeceğine karar verilirken yalnızca uzantının manifest dosyasında belirtilen ses parametrelerini destekleyip desteklemediği ve onSpeak ile onStop için dinleyicileri kaydedip kaydetmediği dikkate alınır. Başka bir deyişle, bir uzantının konuşma isteği alması ve bunu işleyip işlemeyeceğine dinamik olarak karar vermesi mümkün değildir.

Türler

AudioBuffer

Chrome 92+

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ı ve audioStreamOptions.sampleRate değerinde mono olarak kodlanmalıdır. Ayrıca doğrusal pcm, 32 bit işaretli kayan nokta (JavaScript'teki Float32Array türü) olarak kodlanmalıdır.

  • charIndex

    number isteğe bağlı

    Bu ses arabelleğiyle ilişkili karakter dizini.

  • isLastBuffer

    boole isteğe bağlı

    Bu ses arabelleği, söylenen metnin sonuncusuysa True değerini döndürür.

AudioStreamOptions

Chrome 92+

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 örnek hızı.

LanguageInstallStatus

Chrome 132 ve sonraki sürümler

Sesin yükleme durumu.

Enum

"notInstalled"

"installing"

"installed"

"başarısız oldu"

LanguageStatus

Chrome 132 ve sonraki sürümler

Bir dilin yükleme durumu.

Özellikler

  • hata

    string 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çimindeki dil dizesi. Bölge kodu atlanabilir. Örnekler: en, en-AU, zh-CH.

LanguageUninstallOptions

Chrome 132 ve sonraki sürümler

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 dilin kaldırılıp kaldırılmayacağını veya ne zaman kaldırılacağını seçebilir. Yanlış ise kaldırma zamanını belirlemek için son kullanım gibi diğer ölçütleri kullanabilir.

SpeakOptions

Chrome 92+

tts.speak() yöntemi için belirtilen seçenekler.

Özellikler

  • gender

    VoiceGender isteğe bağlı

    Chrome 92'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, bu 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. Bu değerin 0,1 ile 10,0 arasında (bu değerler dahil) olacağı garanti edilir. Ses bu hız aralığının tamamını desteklemiyorsa hata döndürmeyin. Bunun yerine, hızı sesin desteklediği aralığa kırpın.

  • voiceName

    string 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 (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.

TtsClient

Chrome 131 ve sonraki sürümler

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ı tarafından okunabilen adıdır.

  • Talep eden tarafın türü.

TtsClientSource

Chrome 131+

Talep eden tarafın türü.

Enum

"chromefeature"

"extension"

VoiceGender

Chrome 54 ve sonraki sürümler Chrome 70'ten itibaren desteği sonlandırılmıştır

Cinsiyet özelliği kullanımdan kaldırılmıştır ve yok sayılacaktır.

Enum

"male"

"female"

Yöntemler

updateLanguage()

Chrome 132 ve sonraki sürümler
chrome.ttsEngine.updateLanguage(
  status: LanguageStatus,
)
: void

Bir dil yüklenmeye çalışıldığında ve bir dil kaldırıldığında 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+
chrome.ttsEngine.updateVoices(
  voices: TtsVoice[],
)
: void

Ses listesini güncellemek için bir motor tarafından çağrılır. Bu liste, bu uzantının manifestinde 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 ve sonraki sürümler
chrome.ttsEngine.onInstallLanguageRequest.addListener(
  callback: function,
)

Bir TTS istemcisi yeni bir dil yükleme isteğinde bulunduğunda tetiklenir. Motor, dili indirip yüklemeye çalışmalı ve sonucu ttsEngine.updateLanguage ile çağırmalıdır. Başarılı olursa motor, yeni kullanılabilir sesleri kaydetmek için ttsEngine.updateVoices'ı da çağırmalıdır.

Parametreler

  • callback

    işlev

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

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

onLanguageStatusRequest

Chrome 132 ve sonraki sürümler
chrome.ttsEngine.onLanguageStatusRequest.addListener(
  callback: function,
)

Bir TTS istemcisi bir 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, konuşulan mevcut ifadeyi (varsa) 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 devam ettirme etkinliğini de desteklemelidir. Böylece, varsa mevcut ifadeyi söylemeye devam edebilir. 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 çağırdığında ve bu uzantının manifest dosyasındaki seslerden biri seçenekler nesnesiyle eşleşen ilk ses 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

    • utterance

      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+
chrome.ttsEngine.onSpeakWithAudioStream.addListener(
  callback: function,
)

Kullanıcı tts.speak() işlevini çağırdığında ve bu uzantının manifest dosyasındaki seslerden biri seçenekler nesnesiyle eşleşen ilk ses olduğunda çağrılır. Chrome'un ses çalma hizmetleri sağlaması ve tts etkinliklerini göndermesi açısından 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

    • utterance

      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+

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

      (errorMessage?: string) => void

      • errorMessage

        string isteğe bağlı

        Hatayı açıklayan bir dize.

onStop

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

tts.stop çağrısı yapıldığında ve bu uzantı konuşmanın ortasındayken tetiklenir. Bir uzantı onStop çağrısı alırsa ve konuşma zaten durdurulmuşsa hiçbir şey yapmamalıdır (hata vermemelidir). 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 ve sonraki sürümler
chrome.ttsEngine.onUninstallLanguageRequest.addListener(
  callback: function,
)

Bir TTS istemcisi bir dile artık ihtiyaç duyulmadığını belirttiğinde tetiklenir.

Parametreler