Python ile Konuşmayı Metne Dönüştürme [Adım Adım İşlem]
Yayınlanan: 2020-08-07İçindekiler
Konuşmadan Metne Giriş
Makinelerle etkileşim yollarımızın çeşitlendiği ve karmaşıklaştığı bir çağda yaşıyoruz. Tıknaz mekanik düğmelerden dokunmatik ekran arayüzüne dönüştük. Ancak bu evrim donanımla sınırlı değil. Bilgisayarlar için girdi için statüko, düşünceden bu yana metin olmuştur. Yine de, NLP (Doğal Dil İşleme) ve ML (Makine Öğrenimi), Veri Bilimindeki gelişmelerle birlikte, gadget'larımızla etkileşim kurmak için konuşmayı bir araç olarak dahil edecek araçlara sahibiz.
Bu araçlar zaten etrafımızı sarıyor ve bize en yaygın olarak sanal asistanlar olarak hizmet ediyor. Google, Siri, Alexa vb. dijital dünyayla etkileşime daha kişisel ve kullanışlı bir boyut eklemede kilometre taşı başarılarıdır.
Çoğu teknolojik yeniliğin aksine, konuşmadan metne teknolojisi, hem tüketim hem de projelerinizi oluşturmak için herkesin keşfetmesi için mevcuttur.
Python, dünyadaki en yaygın programlama dillerinden biridir ve konuşmanızı metne dönüştürme uygulamaları için araçlara sahiptir.
Konuşmadan Metne Tarihçesi
Python'da ifadeyi metne keşfetmeden önce, bu alanda ne kadar ilerleme kaydettiğimizi takdir etmeye değer. Aşağıdakilerin basitleştirilmiş zaman çizelgesi:
- Audrey , 1952: 3 Bells laboratuvar araştırmacısı tarafından geliştirilen ilk konuşma tanıma sistemi. Sadece rakamları tanıyabiliyordu.
- IBM Showbox (1962): Bobinlerin rakamlara ek olarak 16 kelimeyi de tanıyan IBM'in ilk konuşma tanıma sistemi. Basit aritmetik dikteleri çözebilir ve sonucu yazdırabilir.
- Savunma İleri Araştırma Projeleri Ajansı (DARPA) (1970): DARPA, Harpy'nin 1011 kelimeyi tanımasını sağlayan Konuşma Anlama Araştırmasını finanse etti.
- Gizli Markov Modeli (HMM), 1980'ler: HMM, sıralı bilgi gerektiren problemleri modelleyen istatistiksel bir modeldir. Bu model, konuşma tanımadaki daha ileri gelişmelere uygulandı.
- Google tarafından sesli arama , 2001: Google, kullanıcıların konuşmayı kullanarak arama yapmalarını sağlayan Sesli Arama özelliğini kullanıma sundu. Bu, çok popüler hale gelen ilk sesli uygulamaydı.
- Siri , 2011: Apple, cihazlarıyla etkileşim kurmanın gerçek zamanlı ve kolay bir yolunu gerçekleştirebilen Siri'yi tanıttı.
- Alexa ,2014 & google home ,2016: Sesli komut tabanlı sanal asistanlar, google home olarak ana akım haline geldi ve Alexa toplu olarak 150 milyondan fazla birim sattı.
Ayrıca Okuyun: En İyi 7 Python NLP Kitaplığı

Metne Konuşmada Meydan Okumalar
Metne konuşma, gerçekten tamamlanmış bir ürün olmaktan uzak, hala karmaşık bir sorundur. Birkaç teknik zorluk, bunu en iyi ihtimalle kusurlu bir araç haline getirir. Konuşma tanıma teknolojisiyle ilgili genel zorluklar şunlardır:
1. Ben kesin yorumlama
Konuşma tanıma, konuşulan kelimeleri her zaman doğru şekilde yorumlamaz. VUI'ler (Sesli Kullanıcı Arayüzü), kelimeler ve cümleler arasındaki ilişkiyi değiştiren anlama bağlamında insanlar kadar usta değildir. Makineler bu nedenle bir cümlenin anlamını anlamakta zorlanabilirler.
2 kez
Bazen ses tanıma sistemlerinin işlemesi çok uzun sürer. Bu, insanların sahip olduğu ses kalıplarının çeşitliliği nedeniyle olabilir. Ses tanımadaki bu tür zorluklar, konuşmayı yavaşlatarak veya telaffuzda daha hassas davranılarak önlenebilir, bu da aracın rahatlığını ortadan kaldırır.
3. Vurgular
VUI'ler, ortalamadan farklı lehçeleri anlamakta zorlanabilirler. Aynı dil içinde, konuşmacılar aynı kelimeleri konuşmanın çılgınca farklı yollarına sahip olabilir.
4. Arka plan gürültüsü ve ses yüksekliği
İdeal bir dünyada bunlar bir sorun olmayacak, ancak durum böyle değil ve bu nedenle VUI'ler gürültülü ortamlarda (kamusal alanlar, büyük ofisler vb.) çalışmayı zor bulabilir.
Okumalısınız: Python'da sohbet robotu nasıl yapılır
Python'da Metne Konuşma
Sıfırdan bir metne bir ifade oluşturmanın zorlu sürecinden geçmek istemiyorsanız, aşağıdakileri kılavuz olarak kullanın. Bu kılavuz, yalnızca kendi konuşmanızı metne dönüştürme uygulamanızı oluşturmaya yönelik temel bir giriş niteliğindedir. Python'un nispeten yeni bir sürümüne ek olarak çalışan bir mikrofonunuz olduğundan emin olun.
Adım 1 :
Aşağıdaki python paketlerini indirin:
- konuşma_recogntion (pip kurulum SpeechRecogntion): Bu, konuşmayı metne dönüştürmenin en önemli adımını çalıştıran ana pakettir. Temyiz, montaj, google-bulut-arama, cep sfenks, Watson-geliştirici-bulut, zekâ vb. gibi diğer alternatiflerin artıları ve eksileri vardır.
- Sesim (pip kurulumu Pyaudio)
- Portaudio (pip Portaudio'yu kurun)
2. Adım :
Bir proje oluşturun (istediğiniz şekilde adlandırın) ve konuşma_recogntion'ı sr olarak içe aktarın.
Tanıyıcı sınıfın olabildiğince çok örneğini oluşturun.
3. Adım :
Bu örnekleri oluşturduktan sonra, şimdi girdinin kaynağını tanımlamamız gerekiyor.
Şimdilik kaynağı mikrofonun kendisi olarak tanımlayalım (mevcut bir ses dosyasını kullanabilirsiniz)
Adım 4 :
Şimdi girdiyi saklamak için bir değişken tanımlayacağız. Kaynaktan bilgi almak için 'dinle' yöntemini kullanırız. Bu nedenle, bizim durumumuzda, önceki kod satırında oluşturduğumuz bir kaynak olarak mikrofonu kullanacağız.
Adım 5 :
Girdiyi (kaynak olarak mikrofon) tanımladığımıza ve onu bir değişkende('audio') sakladığına göre, onu metne dönüştürmek için yalnızca tanıma_google yöntemini kullanmamız gerekiyor. Sonucu bir değişkende saklayabiliriz veya sonucu basitçe yazdırabiliriz. Yalnızca tanıma_google'a güvenmek zorunda değiliz, aynı zamanda çalışan farklı API'leri kullanan başka yöntemlerimiz de var. Bu tür yöntemlere örnekler:

tanı_bing()
reconize_google_cloud()
reconize_houndify()
reconize_ibm()
reongize_Sphinx() (çevrimdışı da çalışır)
Aşağıdaki yöntem, konuşmanızı metin tanıma yazılımına sıfırdan geliştirme zorunluluğunu azaltmaya yardımcı olan mevcut paketleri kullandı. Bu paketler, daha spesifik sorunları çözen projelerinizi oluşturmanıza yardımcı olabilecek daha fazla araca sahiptir. Kullanışlı bir özelliğe bir örnek, varsayılan dili İngilizce'den Hintçe olarak değiştirebilmenizdir. Bu, Hintçe'ye yazdırılan sonuçları değiştirecektir (şu anda olduğu gibi, metne konuşma en çok İngilizceyi anlamak için gelişmiştir).
Ancak, bu tür yazılımların nasıl çalıştığını anlamak, ciddi geliştiricilerin iyi bir düşünce alıştırmasıdır.
Hadi parçalayalım.
En temelinde, konuşma sadece bir ses dalgasıdır. Bu tür ses dalgaları veya ses sinyalleri, Genlik, tepe ve çukur, dalga boyu, döngü ve frekans gibi (akustik fiziğine tanıdık gelebilecek) birkaç karakteristik özelliğe sahiptir.
Bu tür ses sinyalleri süreklidir ve dolayısıyla sonsuz veri noktalarına sahiptir. Böyle bir ses sinyalini bir bilgisayarın işleyebilmesi için dijital bir sinyale dönüştürmek için, ağ, bir ses sinyalinin sürekliliğine çok benzeyen ayrı bir örnek dağılımı almalıdır.
Uygun bir örnekleme frekansına sahip olduğumuzda (8000 Hz iyi bir standarttır çünkü çoğu konuşma frekansı bu aralıktadır), artık LibROSA ve SciPy gibi Python kitaplıkları ses sinyallerini işleyebilir. Daha sonra, veri setini 2'ye bölerek, modeli eğiterek ve modelin bulgularını doğrulamak için diğerini bu girdiler üzerine inşa edebiliriz.
Bu aşamada, yalnızca bir boyut boyunca performans gösteren bir evrişimsel sinir ağı olan Conv1d'nin model mimarisi kullanılabilir. Daha sonra bir model oluşturabilir, kayıp fonksiyonunu tanımlayabilir ve konuşmayı metne dönüştürmekten en iyi modeli kaydetmek için sinir ağlarını kullanabiliriz. Derin öğrenme ve NLP'yi (Doğal Dil İşleme) kullanarak, daha kapsamlı uygulamalar ve benimseme için ifadeyi metne dönüştürebiliriz.
Konuşma Tanıma Uygulamaları
Öğrendiğimiz gibi, bu teknolojik yeniliği yürütecek araçlar daha erişilebilir çünkü bu çoğunlukla bir yazılım yeniliğidir ve hiçbir şirket buna sahip değildir. Bu erişilebilirlik, sınırlı kaynaklara sahip geliştiricilerin bu teknolojiyi uygulamalarını geliştirmeleri için kapılar açmıştır.

Konuşma tanımanın büyüdüğü alanlardan bazıları şunlardır:
- Arama motorlarında evrim: konuşma tanıma, sözlü ve yazılı iletişim arasındaki boşluğu doldurarak arama doğruluğunu artırmaya yardımcı olacaktır.
- Sağlık sektörü üzerindeki etkisi: Konuşma tanıma, tıbbi raporlamanın tamamlanmasına yardımcı olarak tıp sektöründe yaygın bir özellik haline geliyor. VUI'ler tıbbi jargonu anlamada daha iyi hale geldikçe, bu teknolojiyi benimsemek doktorlar için idari işlerden daha fazla zaman kazanacaktır.
- Hizmet sektörü: Artan otomasyon trendlerinde, bir müşterinin bir sorguya yanıt verecek bir insan bulamaması ve bu nedenle konuşma tanıma sistemleri bu boşluğu doldurabilir. Bu özelliğin hızla büyümesini havaalanlarında, toplu taşımada vs. göreceğiz.
- Servis sağlayıcılar: telekomünikasyon sağlayıcıları, arayanın taleplerini belirlemeye yardımcı olarak ve onları uygun yardıma yönlendirerek bekleme sürelerini azaltabilen konuşmadan metne dayalı sistemlere daha fazla güvenebilirler.
Ayrıca Okuyun: Sesli Arama Teknolojisi – İlginç Gerçekler
Çözüm
Konuşmadan metne, yakında her yerde olacak güçlü bir teknolojidir. Python (dünyadaki en popüler programlama dillerinden biri) ile birlikte oldukça basit kullanılabilirliği, uygulamalarını oluşturmayı kolaylaştırır. Bu alanda büyük adımlar atarken, dijital dünyaya erişimin sadece parmak uçlarıyla değil, sözlü olarak da erişilebildiği bir dünyanın yolunu açıyoruz.
Doğal dil işleme hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller ve 450 saatten fazla zorlu eğitim için tasarlanmış Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG programımıza göz atın.
Veri bilimi hakkında bilgi edinmek istiyorsanız, IIIT -B & upGrad'ın çalışan profesyoneller için oluşturulmuş ve 10'dan fazla vaka çalışması ve proje, uygulamalı uygulamalı atölye çalışmaları, endüstri uzmanlarıyla mentorluk, 1 Endüstri danışmanlarıyla bire bir, en iyi firmalarla 400+ saat öğrenim ve iş yardımı.
Konuşmadan metne dönüştürme nedir?
Konuşma tanımanın ilk günlerinde, bir transkripsiyon uzmanı bir kulaklıkla oturdu ve konuşmayı kaydetti. Süreç uzun sürdü ve düşük kaliteli transkriptler üretti. Günümüzde konuşma tanıma sistemleri, konuşmayı metne dönüştürmek için bilgisayarları kullanır. Buna konuşmadan metne dönüştürme denir. Konuşma tanıma (konuşmadan metne dönüştürme olarak da bilinir), konuşulan kelimeleri makine tarafından okunabilir verilere dönüştürme işlemidir. Amaç, insanların makinelerle sesli iletişim kurmasını ve makinelerin de konuşma üreterek insanlarla iletişim kurmasını sağlamaktır. Bu dönüştürmeyi gerçekleştirmek için konuşmadan metne yazılım kullanılır.
Konuşmadan metne dönüştürmedeki zorluklar nelerdir?
Konuşmadan metne dönüştürmede birçok zorluk vardır. Ana zorluklar şunlardır: Doğruluk, kullanıcının amacını çıkarmak için sistemin konuşulan kelimeleri doğru alması gerekir. Hız, sistemin yukarıdakileri kullanıcı tarafından kabul edilebilecek kadar hızlı gerçekleştirebilmesi gerekir. Doğallık, sistem mümkün olduğunca doğal görünmelidir, böylece kullanıcı doğal olmayan bir şekilde konuşmak zorunda hissetmez. Sağlamlık, sistem büyük miktarda arka plan gürültüsünü, diğer konuşmaları ve dönüştürme sürecini engelleyebilecek diğer etkileri kaldırabilmelidir.
Konuşmanın metin işlemeye uygulamaları nelerdir?
Konuşmayı metne dönüştürmenizin nedeni, iletişim kurmanın çok hızlı ve kullanışlı bir yolu olmasıdır. Konuşmadan metne işleme birçok farklı uygulamada kullanılabilir, örneğin kullanıcının klavyede yazmak yerine konuşmasını mesaj göndermek ve arama yapmak için kullanabileceği bir mobil iletişim cihazında kullanılabilir. Konuşmanın metin işlemeye başka bir uygulaması da makine kontrolüdür. Bir motoru veya diğer endüstriyel makineyi konuşarak kontrol etmenin bir yoludur.