Turn any text into a soothing ASMR-style reading experience. Because sometimes you just want your PDF documentation read in a calming voice.
- Converts text from various sources (PDF, TXT, Markdown, Web pages) into speech
- Blends different voices for a unique ASMR experience
- Parallel processing for smooth playback
- Supports chunking for long texts
- Handles web content with readability extraction
You can install ASMReader using pip
:
pip install asmreader
For users who prefer to use pipx
, you can install it globally:
pipx install asmreader
If you are using uv
, you can install it with:
uv tool install asmreader
After installation, you can run the application using the command:
asmreader --help
Important: Before using the application, you MUST call the download_model
function to download the necessary files.
asmreader --file path/to/your/2501.00536v2.pdf # Read a local file
asmreader --url "https://en.wikipedia.org/wiki/Gigi_D%27Agostino" # Read a web page
asmreader --file document.txt --speed 0.8 # Adjust speech speed
asmreader --file document.pdf --output reading.wav # Save to file instead of playing
To contribute:
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Write tests for your feature
- Implement your feature
- Run tests:
make test
- Push and create a Pull Request
- Create a new reader in
asmreader/readers/
- Inherit from
TextReader
- Implement
supported_mime_types()
andread()
- Add to
READERS
inreaders/__init__.py
Example:
class MyNewReader(TextReader):
def supported_mime_types(self, mime: str) -> bool:
return mime in ['application/x-my-format']
def read(self, file_path: str) -> str:
# Your implementation here
pass
MIT - Because sharing is caring, and ASMR should be free.
Because sometimes you need your technical documentation read in a soothing voice while you drift off to sleep, dreaming of well-documented code and properly handled edge cases.
- Side effects include improved understanding of technical documents
- Not responsible for ASMR addiction