Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pyxreader

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pyxreader

A versatile module providing memory-efficient text-to-speech capabilities for various file formats.

  • 0.0.1
  • PyPI
  • Socket score

Maintainers
1

pyxreader

pyxreader is a Python module that streamlines the process of reading and vocalizing the content of files using text-to-speech capabilities in a memory-efficient way. It provides a flexible and extensible architecture to support various file formats and allows for custom methods that the user can choose to extract text from various files.

Features

  • Read and vocalize the content of any file.
  • Easily configure reading speed, volume, and voice.
  • Support for custom dependency injection, enabling users to define their own text extraction logic for various file formats. The module comes with native support for PDFs.

Installation

pip install pyxreader

if you're on linux, for the speech capabilities you might also need to install:

sudo apt update && sudo apt install espeak ffmpeg libespeak1

Note: The text-to-speech capabilities are provided by pyttsx3. If you encounter any issues with speech not functioning on your system, make sure to consult the library for more information.

Configuration

The Reader class allows you to configure various settings:

  • speed: Reading speed in words per minute (default: 200).
  • volume: Volume level, a float between 0.0 and 1.0 (default: 1.0).
  • voice: The voice to use for reading (default: operating system).

Usage

Normal text file reader

from pyxreader import TextReader

# Speak the provided text
TextReader("Hey there!").say().execute()

# Save spoken text to an MP3 file
TextReader("Whatever it read").save("output.mp3").execute()

# Read and speak the content of a normal file line by line
TextReader().read_file("reader.py").execute()

Custom files (PDFs by default)

from pyxreader import AdaptableReader

# Read and vocalize the content of a PDF file with default settings
# Defaults to the base iterator PDFTextIterator.
AdaptableReader(filename="example.pdf").read()
This uses PDFTextIterator to parse PDFs and extract text per page
How it works
from pyxreader import PDFTextIterator


per_page = PDFTextIterator("any.pdf")
for line in per_page:
    print(line)
If the file you have is not a PDF like
AdaptableReader(filename="example.custom").read()
Then define your own custom file iterator
from pyxreader import AdaptableReader
from pyxreader.iterators import BaseIterator


class CustomIterator(BaseIterator):
    def __init__(self, file: str):
        super().__init__(file)
        # Additional initialization for your custom iterator

    def __iter__(self) -> "CustomIterator":
        """
        Method to initialize the custom iterator.
        """
        pass

    def __next__(self) -> str:
        """
        Method to extract the next item in the iteration.
        """
        # Implement the logic to extract the next item in the iteration for your custom iterator
        # This method should return a string
        pass


# Example using a custom iterator
AdaptableReader("example.custom").inject_iterator(CustomIterator).read()

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc