Konuşma tanıma (Speech recognition) programı
Konuşma tanıma (Speech recognition) veya konuşmadan metne (speech-to-text), bir cihazın veya programın yüksek sesle konuşulan kelimeleri tanımlama ve bunları okunabilir metne dönüştürmesi işlemidir.
Konuşma tanıma ve ses tanıma (voice recognition) terimleri bazen birbirinin yerine kullanılmasına rağmen, aslında iki terim birbirinden farklıdır. Konuşma tanıma, konuşulan dildeki kelimeleri tanımlamak için kullanılır. Ses tanıma ise, belirli bir kişinin sesini veya konuşmacıyı tanımlamak için kullanılan biyometrik bir teknolojidir.
Program için aşağıda bilgileri ve sanal ortamda kurulum komutları verilen kütüphaneleri kullanacağız:
- SpeechRecognition kütüphanesi
Çeşitli motorlar ve API’ler için çevrimiçi ve çevrimdışı desteği sağlayan konuşma tanıma kütüphanesidir.
1
2
3
4
5
pip install SpeechRecognition
- PyAudio kütüphanesi
Tüm işletim sistemlerinde çalışan ses giriş/çıkış akışı kütüphanesidir. Ses ile ilgili işlemlerde kullanılır.
Bu kütüphanenin doğrudan “pip install pyaudio” komutu ile kurulmasında herhangi bir sorun yaşandığında kurulumu gerçekleştirmek için, Christoph Gohlke tarafından Python paketleri için resmi olmayan Windows işletim sistemi dosyalarını içeren web sitesine ait buradaki bağlantıdan bilgisayarımızın işletim sistemine göre indirdiğimiz aşağıdaki dosyalardan birisini, sanal ortamın altındaki Scripts dizini altına kopyalayarak kullanıyoruz:
PyAudio-0.2.11-cp39-cp39-win_amd64.whl
PyAudio-0.2.11-cp39-cp39-win32.whl
1
2
3
4
5
pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import speech_recognition as sr
r = sr.Recognizer() # speech_recognition için recognizer nesnesi tanımlama
# Konuşmayı metine çeviren fonksiyon
def SpeechToText(stt_mic):
print("Konuşun:")
# Recognizer'ın çevredeki gürültü seviyesine göre enerji eşiğini ayarlamasına izin vermek için bir saniye bekleme
r.adjust_for_ambient_noise(mic, duration=0.2)
audio = r.listen(stt_mic) # Kullanıcı girişini alma
text = r.recognize_google(audio, language='tr-TR') # Google ile sesi metine çevirme
text = text.lower() # Metni küçük harfe çevirme
print(f"Alınan metin: {text}") # Metni ekrana yazma
try:
while True:
with sr.Microphone() as mic: # Giriş kaynağı olarak nikrofon kullanma
SpeechToText(mic)
except KeyboardInterrupt: # Ctrl-C ile çıkış
pass
Programı çalıştırdığımızda, mikrofondan gelen insan sesini metne çevirir ve metin değerini ekrana yazar. Aynı işlem sürekli tekrar eder. Ctrl-C tuş bileşimine bastığımızda, program sona erer.