Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Electrical Engineering
Electrical Engineering
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Code Golf
Code Golf
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
Mark all as read

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

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.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.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
        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,
        print("You didn't select any file")

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

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)


Error :

Traceback (most recent call last):
  File "/home/istiak/PycharmProjects/Pandas/", line 12, in <module>
    speaker = pyttsx3.init()
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/", line 22, in init
    eng = Engine(driverName, debug)
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/", 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/", line 50, in __init__
    self._module = importlib.import_module(name)
  File "/usr/lib/python3.9/importlib/", 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/", line 9, in <module>
    from . import _espeak, toUtf8, fromUtf8
  File "/home/istiak/PycharmProjects/Pandas/venv/lib/python3.9/site-packages/pyttsx3/drivers/", line 18, in <module>
    dll = cdll.LoadLibrary('')
  File "/usr/lib/python3.9/ctypes/", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: 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

sudo pacman -Sy espeak

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


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