├── .idea
├── .gitignore
├── .name
├── TextToneBot.iml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── README.md
├── images
├── PyCharm.png
├── github.png
├── poster.png
└── python.png
└── main.py
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | main.py
--------------------------------------------------------------------------------
/.idea/TextToneBot.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # EchoCharm 🗣️
3 | Welcome to EchoCharm, a versatile text-to-speech application developed in Python using the `pyttsx3` library. EchoCharm lets you transform your textual input into spoken words using a variety of voices. Whether you're looking to hear your written content come alive, explore different voices, or experiment with speech synthesis, EchoCharm offers an engaging way to do so.
4 |
5 | 
6 |
7 | ## Features and Highlights ✨
8 |
9 | - 🎙️ **Voice Selection:** Choose from a diverse collection of available voices, each with its own distinct qualities and accents.
10 | - 📣 **Auditory Experience:** Listen to your input text being dynamically spoken aloud in real-time.
11 | - 🎭 **Voice Exploration:** Discover the personalities of different voices and explore how your text sounds with unique inflections.
12 | - 🔄 **Interactive UI:** Enjoy a user-friendly command-line interface that guides you through the process.
13 | - ❌ **Easy Exit:** Exit the application conveniently by entering "x."
14 |
15 | ## Getting Started 🚀
16 |
17 | 1. **Clone the Repository:** Begin by cloning this repository to your local machine:
18 | ```
19 | git clone https://github.com/Shubh2-0/echocharm.git
20 | ```
21 | 2. **Install Dependencies:** Ensure you have the necessary library installed:
22 | ```
23 | pip install pyttsx3
24 | ```
25 |
26 | 3. **Run the Application:** Launch the application by executing the echotext.py script:
27 |
28 | ```
29 | python main.py
30 | ```
31 |
32 | 4. **Select a Voice and Speak:** Embark on your text-to-speech journey within the application:
33 |
34 | 🤖 Browse the list of available voices and select one by entering the corresponding number.
35 |
36 | 🤖 Enter the text you wish to hear spoken aloud.
37 |
38 | 🤖 To exit the application, simply type **x** .
39 |
40 |
41 | ## Demo Video 🎥
42 |
43 | Discover EchoCharm in action through our engaging demo video! Experience how EchoCharm's intuitive interface empowers users to convert text into spoken words using various available voices. Witness the seamless process of selecting voices, inputting text, and hearing it come to life. Join us on a journey of auditory exploration with EchoCharm.
44 |
45 | [Watch EchoCharm Demo Video](https://drive.google.com/file/d/1iTy1Wtnaku85R8Bp19ygnWlK6Z6NWLf6/view?usp=sharing)
46 |
47 | ## Tools Used 🛠️
48 |
49 |
50 |
51 |
52 |
53 | Python
54 |
55 |
56 |
57 | PyCharm
58 |
59 |
60 |
61 | Github
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | ## Contributions and Feedback 🤝
70 | Contributions are encouraged! If you encounter issues, have innovative ideas, or wish to introduce new features, here's how you can contribute:
71 |
72 | 🐍 **Fork the Repository:** Begin by forking the repository to your GitHub account.
73 |
74 | 🐍 **Create a Feature Branch:** Create a branch to work on your feature: ```git checkout -b feature/YourFeatureName.```
75 |
76 | 🐍 **Commit Your Changes:** Commit your changes with a descriptive commit message: ```git commit -m 'Adding a remarkable feature'.```
77 |
78 | 🐍 **Push Your Branch:** Push your feature branch to your repository: ```git push origin feature/YourFeatureName.```
79 |
80 | 🐍 **Open a Pull Request:** Submit a pull request to merge your changes into the main repository.
81 |
82 | ## Acknowledgments and Credits 🙏
83 |
84 | EchoCharm leverages the powerful **pyttsx3** library for its text-to-speech capabilities.
85 | We extend our gratitude to the open-source community for its contributions and support.
86 |
87 |
88 |
89 | ## 📬 Contact
90 |
91 | If you want to contact me, you can reach me through below handles.
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | 🔊 Elevate your text with EchoCharm's auditory magic! We hope you enjoy the journey of turning words into sound.
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/images/PyCharm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shubh2-0/EchoCharm/db34196c09768b94ffe046ea10f1bdc0535959c9/images/PyCharm.png
--------------------------------------------------------------------------------
/images/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shubh2-0/EchoCharm/db34196c09768b94ffe046ea10f1bdc0535959c9/images/github.png
--------------------------------------------------------------------------------
/images/poster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shubh2-0/EchoCharm/db34196c09768b94ffe046ea10f1bdc0535959c9/images/poster.png
--------------------------------------------------------------------------------
/images/python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shubh2-0/EchoCharm/db34196c09768b94ffe046ea10f1bdc0535959c9/images/python.png
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | import pyttsx3
2 |
3 |
4 | # Import the 'pyttsx3' module which provides text-to-speech functionality
5 |
6 | # Function to list available voices and let the user choose one
7 | def list_available_voices(engine):
8 | # Get the list of available voices from the engine
9 | voices = engine.getProperty('voices')
10 |
11 | # Display a message indicating that available voices are being listed
12 | print("Available Voices:")
13 |
14 | # Enumerate through the available voices and display them with corresponding numbers
15 | for index, voice in enumerate(voices):
16 | print(f"{index + 1}. {voice.name}")
17 |
18 | # Loop until the user makes a valid voice choice
19 | while True:
20 | try:
21 | # Ask the user to enter a choice and handle potential ValueError
22 | choice = int(input("Choose a voice (enter the corresponding number): "))
23 |
24 | # Check if the choice is within the valid range
25 | if 1 <= choice <= len(voices):
26 | selected_voice = voices[choice - 1]
27 | return selected_voice
28 | else:
29 | print("Invalid choice. Please enter a valid number.")
30 | except ValueError:
31 | print("Invalid input. Please enter a valid number.")
32 |
33 |
34 | if __name__ == '__main__':
35 | # Initialize the text-to-speech engine
36 | while True:
37 | engine = pyttsx3.init()
38 |
39 | # List available voices and choose one
40 | selected_voice = list_available_voices(engine)
41 |
42 | # Set the chosen voice as the active voice for the engine
43 | engine.setProperty('voice', selected_voice.id)
44 |
45 | # Get user input
46 | user_text = input("Enter the text you want to hear (enter 'x' to exit): ")
47 |
48 | # Check if the user wants to exit the loop
49 | if user_text.lower() == "x":
50 | break
51 |
52 | # Speak the user input using the selected voice
53 | engine.say(user_text)
54 | engine.runAndWait()
55 | print("\n\n============================\n\n")
56 |
57 |
58 | print("\n\n\n\nThanks for using this Application...........😇")
59 |
60 |
61 |
--------------------------------------------------------------------------------