Web API Dünyası | Speech API

Mustafa BİÇER
2 min readSep 14, 2022

--

Yeni bir yazı serisi ile herkese merhaba. Bu yazı serimde, Web tarafında denemekten keyif aldığım ve geliştirme yaparken kullanabileceğiniz bazı API’lardan bahsedeceğim.

Serimizin ilk konuğu ses-yazı dönüşümleri için bize yardımcı olabilecek Web Speech API. Web Speech API’dan bahsetmeden hemen öncesinde Web API’nın tarayıcılarımızın yetenekleri olduğunu ve JavaScript ile sınırlamamız gerektiğini hatırlatmakta fayda var. Fakat biz yine de örneklerimizi JavaScript temel alarak inceleyeceğiz.

Web Speech API ile girdilerimiz artık sadece metinlerden değil, seslerden de oluşabiliyor. Yani, ses ile iletebileceğiniz bir komutla aksiyon aldırabilir ya da varolan bir metnin sese dönüştürülmesini sağlayabilirsiniz. Bu sayede çok daha interaktif web içerikleri oluşturabilirsiniz. Bu API’yi sesli dönütlerle görme engelli bireyler için web platformunuzu zenginleştirmek için de kullanabilirsiniz.

Web Speech API’dan temelde az önce bahsettiğim iki beklentimiz bulunmaktadır. Web Speech API da bu beklentimizi iki ana interface olarak basit bir mimari ile karşılıyor. Şimdi detaylarını inceleyeleyim:

Speech recognition

Ses olarak verilen girdiyi metne dönüştürmek için kullanılır. Kısacası mikrofon ile söylenilen kelimelerin metne dönüştürülmesini sağlar. SpeechRecognition sınıfından üretilen yeni bir nesne ile kullanılır. Temel method ve event’leri şu şekildedir:

  • start: Sınıfımızı ayağa kaldırmak ve mikrofonu aktif hale getirmek için kullanılır. Bu adımda, tarayıcınız son kullanıcıdan mikrofon kullanım izni talep etmektedir.
Görsel 1.1: Son Kullanıcıdan Mikrofon İzni Talep Edilmesi.
  • onresult: Event handler olarak karşımıza çıkan onresult, stop method’u çağırıldıktan sonra tetiklenir ve sesli girdileri parametre olarak alır. Aşağıdaki obje modelinde tüm prototipleri görebilirsiniz. results dizisi içerisinde bulunan transcript değeri kullanıcıdan alınan sesli girdinin metin haline dönüştürülmüş formatını verir.
Görsel 1.2: Sesli Girdi Nesnesi
  • onspeechend: Start ile başlayan dinleme eylemi kullanıcının konuşmasının bittiği algılandığında yapılacak işlemler için bu handler kullanılır. Biz aşağıdaki örneğimizde bu fonksiyonda stop method’unu tetikledik.
  • stop: Start method’uyla ayağa kaldırılan sınıfın sonlanmasını sağlayan ve browser tarafına mikrofonla görevin tamamlandığını belirten method’dur.

Speech synthesis

Verdiğimiz metinleri, talep ettiğimiz dilin telaffuz kurallarına göre seslendirilmesi için kullanılır. speechSynthesis sınıfından türetilen nesne ile kullanılır. speak, pause, resume, cancel gibi temel medya oynatıcı method’ları bulunmaktadır.

Önemli bir detay olarak; SpeechSynthesisUtterance sınıfından utterance nesnesi oluşturulur. Bu nesne, okunacak metnin özelliklerinin belirlenmesini sağlar. Örneğin; hangi dilde telaffuz edileceğini belirtmek için lang key’i kullanılır. Tüm utterance key’leri için buradan yararlanabilirsiniz.

listen ve speak fonksiyonları için örnek kod blokları:

Bu yazımda sadece temel method ve event’lere yer vermek istedim. Gelişmiş diğer özellikler için MDN üzerinden inceleme yapabilirsiniz. Ek olarak, tarayıcı desteği tarafında oldukça mutlu eden bu API için Firefox tarafı SpeechRecognition tarafında destek vermeyerek bizi oldukça üzüyor.

Bu metodlar kullanılarak geliştirmiş olduğum translate uygulamasına da bu repository üzerinden erişebilir ve yorumlarınızı iletebilirsiniz.

Vakit ayırdığınız için teşekkürler.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Mustafa BİÇER
Mustafa BİÇER

Written by Mustafa BİÇER

Frontend Developer | Trainer | Consultant | Content Creator

No responses yet

Write a response