Conversation
DhanushNehru
left a comment
There was a problem hiding this comment.
Please follow the correct format accordingly. Also update the main README.md section
There was a problem hiding this comment.
Pull Request Overview
This PR adds a text-to-speech feature to the project using the pyttsx3 library. The implementation allows the program to convert text into spoken voice output using Microsoft's David voice engine.
- Adds a new text-to-speech module with pyttsx3 integration
- Configures speech rate and voice selection
- Includes a demo implementation that speaks "hello world"
Comments suppressed due to low confidence (1)
text_to_speech.py:2
- Variable name 'default_SpeechRate' should follow Python naming conventions and use lowercase with underscores: 'default_speech_rate'.
default_SpeechRate= 176
| print(voice.name) | ||
|
|
||
| desired_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0" | ||
| engine.setProperty(voice, desired_voice_id) |
There was a problem hiding this comment.
The first argument should be the string 'voice', not the variable 'voice' from the loop. This should be engine.setProperty('voice', desired_voice_id).
| engine.setProperty(voice, desired_voice_id) | |
| engine.setProperty("voice", desired_voice_id) |
| desired_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0" | ||
| engine.setProperty(voice, desired_voice_id) |
There was a problem hiding this comment.
The hardcoded Windows registry path makes this code platform-specific and non-portable. Consider using a cross-platform approach or making the voice selection configurable.
| desired_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0" | |
| engine.setProperty(voice, desired_voice_id) | |
| desired_voice_name = "David" # Replace with the desired voice name | |
| selected_voice = None | |
| for voice in voices: | |
| if desired_voice_name.lower() in voice.name.lower(): | |
| selected_voice = voice.id | |
| break | |
| if selected_voice: | |
| engine.setProperty("voice", selected_voice) | |
| else: | |
| print(f"Desired voice '{desired_voice_name}' not found. Using default voice.") | |
| engine.setProperty("voice", voices[0].id) |
| for voice in voices: | ||
| print(voice.id) | ||
| print(voice.name) |
There was a problem hiding this comment.
[nitpick] The voice iteration loop prints all available voices but doesn't serve a clear purpose in the final implementation. Consider removing this debug code or making it conditional.
| for voice in voices: | |
| print(voice.id) | |
| print(voice.name) | |
| DEBUG_MODE = False # Set to True to enable debug output | |
| if DEBUG_MODE: | |
| for voice in voices: | |
| print(voice.id) | |
| print(voice.name) |
Added a text-to-speech feature using pyttsx3.
This feature allows the program to convert text into spoken voice output.
Closes #405
changes are welcome