Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read
Q&A

Unable to use pyttx3 (libespeak.so.1: cannot open shared object file: No such file or directory)

+2
−0
from tkinter import *
from tkinter import messagebox, filedialog
import pyttsx3
import PyPDF2
import os
import webbrowser

root = Tk()
# root.geometry("500x500")
root.title("Audio Book")

speaker = pyttsx3.init()

# speaker volume
volume = Label(root, text="Volume", width=25)
volume.grid(row=1, column=0)

volumeSlider = Scale(root, from_=0.1, to=10, orient=HORIZONTAL, width=25)
volumeSlider.set(0.7)
volumeSlider.grid(row=1, column=1)

# speaker volume rate
speakerRate = Label(root, text="Speaker Rate", width=25)
speakerRate.grid(row=2, column=0)

speakerRateSlider = Scale(root, from_=100, to=400, orient=HORIZONTAL, width=25)
speakerRateSlider.set(100)
speakerRateSlider.grid(row=2, column=1)

btnStart = Button(root, text="Start reading", state=DISABLED, width=25, fg="#787878")
btnStart.grid(row=6, column=0, columnspan=2, pady=5)


def selectBook():
    global book
    global page
    global text
    global pdfReader
    global pages
    global selectPage
    global filepath
    try:
        filepath = filedialog.askopenfilename(initialdir="", title="Select a pdf book",
                                              filetypes=(("pdf files", ".pdf"), ("all_files", "*.*")))
        # book name
        bookName = os.path.basename(filepath)
        bookNameLabel = Label(root, text="Name : "+bookName).grid(row=0,column=0, columnspan=2)
        # open,read get page number of book
        book = open(filepath, 'rb')
        pdfReader = PyPDF2.PdfFileReader(book)
        pages = pdfReader.numPages
        # select page label
        selectPageLabel = Label(root, text="Page ", width=25).grid(row=4, column=0)
        # select page slider
        selectPage = Scale(root, from_=1, to=pages, orient=HORIZONTAL)
        selectPage.grid(row=4, column=1)
        # button start
        btnStart = Button(root, text="Start reading", command=read, width=25, bg="#47fff7", fg="#787878").grid(row=6, column=0, columnspan=2,
                                                                                   pady=5)
    except:
        print("You didn't select any file")


def read():
    # opening browser
    webbrowser.open_new(filepath)
    page = pdfReader.getPage(selectPage.get() - 1)
    text = page.extractText()
    print(pages)
    volume = volumeSlider.get()
    speakerRate = speakerRateSlider.get()
    speaker.setProperty("rate", speakerRate)
    speaker.setProperty('volume', volume)
    speaker.say(text)
    speaker.runAndWait()


selectBook = Button(root, text="Choose a book", command=selectBook, width=25, bg="#307fff", fg="#b3b3b3")
selectBook.grid(row=3, column=0, columnspan=2, pady=5)

root.mainloop()

Error :

Traceback (most recent call last):
  File "/home/istiak/PycharmProjects/Pandas/main.py", line 12, in <module>
    speaker = pyttsx3.init()
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/__init__.py", line 22, in init
    eng = Engine(driverName, debug)
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/engine.py", line 30, in __init__
    self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/driver.py", line 50, in __init__
    self._module = importlib.import_module(name)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/drivers/espeak.py", line 9, in <module>
    from . import _espeak, toUtf8, fromUtf8
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/drivers/_espeak.py", line 18, in <module>
    dll = cdll.LoadLibrary('libespeak.so.1')
  File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libespeak.so.1: cannot open shared object file: No such file or directory

I am using Manjaro. I have found a related issue in git issue. They said to install libespeak1 and, alsa-utils. I have installed both of them even, I had installed pyttx, pyaudio using pip3. Although, I am facing the same issue. Why it's happening?

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

1 answer

+1
−1
sudo pacman -Sy espeak

After installing espeak it's working well. I am not getting the error anymore.

Reference

Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

General Comments. (2 comments)

Sign up to answer this question »

This community is part of the Codidact network. We have other communities too — take a look!

You can also join us in chat!

Want to advertise this community? Use our templates!

Like what we're doing? Support us! Donate