Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/darishsfit/paragraph_dictation_script
https://github.com/darishsfit/paragraph_dictation_script
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/darishsfit/paragraph_dictation_script
- Owner: darishSFIT
- Created: 2024-08-27T17:20:48.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-09T18:58:04.000Z (4 months ago)
- Last Synced: 2024-11-03T21:40:28.146Z (3 months ago)
- Language: Python
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Paragraph Dictation Script
## A script used to dictate a paragraph for you to write instead of looking at text again and again and writing.
#### This Python script converts text to speech using the `pyttsx3` library, allowing users to specify a delay between words and adjust the speech rate. The script is particularly useful for dictation or practicing typing, as it provides ample time between words based on their length.## Features
- **Custom Word Delay**: The user can set a global delay between each word. Additionally, the script calculates an extra delay based on the length of each word to provide more time for longer words.
- **Adjustable Speech Rate**: The user can set the speed of the speech in words per minute.
- **Text Input**: The script takes a string of text input and reads it aloud with the specified delays.## Prerequisites
- Python 3.x
- `pyttsx3` libraryInstall `pyttsx3` using pip:
```bash
pip install pyttsx3
```## How to Run
1. Clone the repository or download the script.
2. Run the script using Python:```bash
python script_name.py
```3. Enter the text you want to hear when prompted.
4. Specify the delay between words and the reading speed.## Code Description
```python
import pyttsx3
import time
```- **pyttsx3**: A text-to-speech conversion library in Python.
- **time**: A library that allows us to add delays between words.```python
def speak_with_custom_delay(text, global_delay):
# Initialize the TTS engine
engine = pyttsx3.init()# Set the speech rate (default is usually around 200)
engine.setProperty('rate', rate)
```- **engine = pyttsx3.init()**: Initializes the text-to-speech engine.
- **engine.setProperty('rate', rate)**: Sets the speech rate based on the user input. The default rate is typically around 200 words per minute.```python
# Split the text into words
words = text.split()
```- **text.split()**: Splits the input text into individual words, which will be spoken one at a time.
```python
# Loop through the words and speak each one with a delay
for word in words:
engine.say(word)
engine.runAndWait()
# Calculate delay based on word length: 10ms per character
word_delay = len(word) * 0.3 # 300ms per character
# Add global delay between words
time.sleep(global_delay)
# Add the word-specific delay
time.sleep(word_delay)
```- **for word in words**: Iterates over each word in the text.
- **engine.say(word)**: Queues the word to be spoken.
- **engine.runAndWait()**: Processes the speech queue and speaks the word.
- **word_delay = len(word) * 0.3**: Calculates a delay based on the length of the word. Longer words will have a proportionally longer delay.
- **time.sleep(global_delay)**: Adds the global delay between words as specified by the user.
- **time.sleep(word_delay)**: Adds an additional delay based on the word's length.```python
if __name__ == "__main__":
# Take text input from the user
text = input("Enter the text you want to hear: (Paste your content) ")# Adjustable delay between words (in seconds)
global_delay = float(input("Enter delay between words (in seconds e.g: 0.5 = 500ms): "))
rate = int(input("Enter the reading speed (words per minute e.g: 150): "))# Speak the text with the specified delays
speak_with_custom_delay(text, global_delay)
```- **if __name__ == "__main__":** Ensures that the script runs only when executed directly.
- **text = input("Enter the text...")**: Prompts the user to input the text they want to hear.
- **global_delay = float(input(...))**: Prompts the user to input the delay between words.
- **rate = int(input(...))**: Prompts the user to input the reading speed in words per minute.
- **speak_with_custom_delay(text, global_delay)**: Calls the function to start reading the text with the specified delays.## License
This project is open-source and free to use.