BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > Python Programlama > Python örnek kodlar > python_ornek00006

Python örnek kodlar

Sesli kitap programı

Bir .pdf dosyadan okunan sayfaları sesli olarak okuyan ve bir metin dosyasına yazan program oluşturmaya çalışacağız.

Program için aşağıda bilgileri ve sanal ortamda kurulum komutları verilen kütüphaneleri kullanacağız:

1. PyMuPDF kütüphanesi

PDF dosya işlemlerinde kullanılan bir kitaplıktır. Bu kütüphaneyi kullanarak, .pdf uzantılı dosyalarla ilgili farklı işlemler gerçekleştirebiliriz.


pip install PyMuPDF

2. gTTS kütüphanesi

gTTS (Google Text-to-Speech), Google Translate API'si kullanarak metini çeviren bir kütüphanedir.


pip install gTTS

Bu kütüphane ile birlikte, urllib3, idna, colorama, charset-normalizer, certifi, six, requests ve click kütüphaneleri otomatik olarak yüklenir.

3. Playsound kütüphanesi

Ses çalmak için kullanılan bir kütüphanedir.


pip install playsound

4. 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


pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl


import fitz # pymupdf kütüphanesi
from gtts import gTTS # Google text to speech kütüphanesi
from playsound import playsound
import random
import os

pdfR = fitz.open('dosyaadi.pdf') 

# Metni konuşmaya çeviren ve oynatan fonksiyon
def TextToSpeech(tts_text):        
    tts = gTTS(tts_text, lang='tr')
    rand = random.randint(1, 10000)
    file = 'audio-' + str(rand) + '.mp3'
    tts.save(file) # Dosyayı kaydetme
    playsound(file) # Dosyayı oynatma
    os.remove(file) # Dosyayı silme	
	
# .pdf dosyasından okunan sayfaları bir metin dosyasına yazma
def writeToFile(file_text):        
    file = open("output.txt", "a")
    file.write(file_text)	
    file.close();

try:
   for id in range(3, pdfR.pageCount): # 3.sayfadan başlayarak .pdf dosya sayfalarını okur.
       page = pdfR.loadPage(id) #put here the page number
       text = page.getText()			  
       writeToFile(text) # Metin dosyasına yazma			  
       TextToSpeech(text) # Metni konuşmaya çevirme ve oynatma

except KeyboardInterrupt: # Ctrl-C ile çıkış
       pass	   

Programı çalıştırdığımızda, 3.sayfadan başlayarak okunan .pdf dosya sayfaları önce bir metin dosyasına eklenir, sonra TextToSpeech() fonksiyonu ile metin konuşmaya çevrilir ve oynatılır. Ctrl-C tuş bileşimine bastığımızda, program sona erer.