{"id":22989875,"url":"https://github.com/afnanksalal/textwave","last_synced_at":"2026-05-05T23:32:59.732Z","repository":{"id":250576198,"uuid":"834842229","full_name":"Afnanksalal/TextWave","owner":"Afnanksalal","description":"Empower your projects with high-quality, natural-sounding voices, crafted for diverse applications from interactive games to enhanced accessibility.","archived":false,"fork":false,"pushed_at":"2025-03-14T15:35:35.000Z","size":171,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T11:49:42.617Z","etag":null,"topics":["ai","audioprocessing","django","flask","synthetic","textprocessing","translation"],"latest_commit_sha":null,"homepage":"https://github.com/Afnanksalal/TextWave/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Afnanksalal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-28T14:27:58.000Z","updated_at":"2025-03-14T15:35:38.000Z","dependencies_parsed_at":"2025-04-02T11:46:37.315Z","dependency_job_id":"a1720e48-c6cf-467e-842f-747e73dcd90c","html_url":"https://github.com/Afnanksalal/TextWave","commit_stats":null,"previous_names":["afnanksalal/textwave"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Afnanksalal/TextWave","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afnanksalal%2FTextWave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afnanksalal%2FTextWave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afnanksalal%2FTextWave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afnanksalal%2FTextWave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Afnanksalal","download_url":"https://codeload.github.com/Afnanksalal/TextWave/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afnanksalal%2FTextWave/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32672673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","audioprocessing","django","flask","synthetic","textprocessing","translation"],"created_at":"2024-12-15T04:19:57.240Z","updated_at":"2026-05-05T23:32:59.717Z","avatar_url":"https://github.com/Afnanksalal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 🌊 TextWave\n![Image Placeholder](textwave.png)\nTextWave is your one-stop solution for transforming text into natural-sounding speech. With its support for diverse languages, accents, and customizable settings, you can unlock a world of possibilities. From crafting immersive games and enhancing accessibility to exploring new frontiers in creative expression, TextWave empowers you to bring your ideas to life through the magic of voice.\n\n### ✨ Key Features\n\n- **Text to Speech Magic:** Effortlessly convert written text into high-quality, lifelike speech.\n- **Multilingual Mastery:** Break down language barriers with support for a wide range of languages and accents.\n- **Tone \u0026 Style Customization:** Fine-tune your voice output to match the desired emotion and context.\n\n### 🚀 Getting Started with TextWave\n\nBefore you use TextWave, ensure you have the following prerequisites:\n\n* **Git:** For cloning the TextWave repository. [https://git-scm.com/](https://git-scm.com/)\n* **Python 3.8+:** The programming language powering TextWave. [https://www.python.org/](https://www.python.org/)\n* **Redis:** An in-memory data store used for rate limiting. [https://redis.io/](https://redis.io/)\n* **MySQL:** A relational database for storing project-related data. [https://www.mysql.com/](https://www.mysql.com/)\n* **FFmpeg:**  A powerful, open-source multimedia framework used to record, convert, and stream audio and video files. [https://ffmpeg.org/download.html](https://ffmpeg.org/download.html)\n  \nNow, let's get TextWave up and running:\n\n#### 1. Clone the Repository\n\nOpen your terminal or command prompt and execute the following command to download the TextWave source code:\n\n```bash\ngit clone https://github.com/Afnanksalal/TextWave.git\n```\n\n#### 2. Set Up the Backend (Flask)\n\nNavigate to the backend directory:\n\n```bash\ncd textwave/backend\n```\n\n* **Environment Variables:** Create a `.env` file in this directory and populate it with your Redis configuration details:\n\n   ```\n   REDIS_HOST=localhost\n   REDIS_PORT=6379\n   REDIS_PASSWORD=your_redis_password\n   REDIS_SSL=True\n   ```\n\n* **Install Dependencies:**  Use pip to install the necessary Python packages:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n   **Important:** During the installation, if you encounter any errors related to `unidic`, install it separately using:\n\n   ```bash\n   python -m unidic download\n   ``` \n* **Download OpenVoice Checkpoint:**  \n   - Download the checkpoint file from: [https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_1226.zip](https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_1226.zip)\n   - Extract the contents and place the `checkpoint` directory in the root of your `backend` folder.\n\n* **Launch the Backend:**\n\n   ```bash\n   python app.py\n   ```\n\n   By default, your Flask app will usually start on `http://127.0.0.1:5000/`. Note this URL, as you'll need it for the frontend.\n\n#### 3. Configure the Frontend (Django)\n\nChange directories to the frontend:\n\n```bash\ncd ../frontend \n```\n\n* **Install Required Packages:**\n   ```bash\n   pip install django django-cors-headers mysqlclient djangorestframework\n   ```\n* **Database Settings:** Open the `settings.py` file.  Within the `DATABASES` dictionary, update the settings for the 'default' connection to match your MySQL credentials:\n\n   ```python\n   DATABASES = {\n       'default': {\n           'ENGINE': 'django.db.backends.mysql',\n           'NAME': 'your_database_name',\n           'USER': 'your_database_user',\n           'PASSWORD': 'your_database_password',\n           'HOST': 'your_database_host', \n           'PORT': '3306', \n       }\n   }\n   ```\n\n* **Connect to the Backend:** In the `flask_api.py` file, replace  `'http://your_backend_url'` with the actual URL of your running Flask backend (e.g., `http://127.0.0.1:5000/`).\n\n\n* **Run Database Migrations:**\n\n   ```bash\n   python manage.py makemigrations\n   python manage.py migrate\n   ```\n\n* **Start the Development Server:**\n\n   ```bash\n   python manage.py runserver\n   ```\n\n   Your Django development server will typically run on `http://127.0.0.1:8000/`.\n\n\n## 🗒️ License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\n## 📝 Acknowledgements\n\nTextWave leverages the power of several open-source libraries and projects. We'd like to extend our gratitude to the developers and communities behind these fantastic tools:\n\n**Backend:**\n\n* **Flask:**  A lightweight and flexible web framework for Python. [https://flask.palletsprojects.com/](https://flask.palletsprojects.com/)\n* **Librosa:** For audio analysis and feature extraction. [https://librosa.org/](https://librosa.org/)\n* **NumPy:** The fundamental package for scientific computing with Python. [https://numpy.org/](https://numpy.org/)\n* **Redis:**  An open-source, in-memory data structure store. [https://redis.io/](https://redis.io/)\n* **SoundFile:** For reading and writing audio files. [https://pysoundfile.readthedocs.io/en/latest/](https://pysoundfile.readthedocs.io/en/latest/)\n* **PyTorch:** An open-source machine learning framework. [https://pytorch.org/](https://pytorch.org/)\n* **Transformers:** Provides pre-trained models for Natural Language Processing tasks. [https://huggingface.co/transformers/](https://huggingface.co/transformers/)\n* **python-dotenv:** Loads environment variables from `.env` files. [https://github.com/theskia/python-dotenv](https://github.com/theskia/python-dotenv)\n* **SentencePiece:** For subword tokenization. [https://github.com/google/sentencepiece](https://github.com/google/sentencepiece)\n* **SacreMoses:** Provides tools for text processing in NLP. [https://github.com/alvations/sacremoses](https://github.com/alvations/sacremoses)\n* **MeloTTS:** A multi-speaker English text-to-speech model. [https://github.com/myshell-ai/MeloTTS](https://github.com/myshell-ai/MeloTTS) \n* **MyShell-OpenVoice:** An open-source text-to-speech voice for research. [https://github.com/myshell-ai/OpenVoice](https://github.com/myshell-ai/OpenVoice)\n* **Helsinki-NLP/opus-mt:** A collection of pre-trained machine translation models. [https://huggingface.co/Helsinki-NLP/opus-mt](https://huggingface.co/Helsinki-NLP/opus-mt) \n\n**Frontend:**\n\n* **Django:** A high-level Python web framework. [https://www.djangoproject.com/](https://www.djangoproject.com/)\n* **django-cors-headers:**  A Django app that adds CORS (Cross-Origin Resource Sharing) headers to responses. [https://github.com/adamchainz/django-cors-headers](https://github.com/adamchainz/django-cors-headers)\n* **mysqlclient:** A Python interface for accessing MySQL databases. [https://github.com/PyMySQL/mysqlclient-python](https://github.com/PyMySQL/mysqlclient-python)\n\n\n### 🫶 Attribution\n\nWhen using this project, please attribute the original author as follows:\n\n```text\nThis project includes code from [TextWave](https://github.com/Afnanksalal/TextWave/) by Afnan K Salal, licensed under the MIT License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafnanksalal%2Ftextwave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafnanksalal%2Ftextwave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafnanksalal%2Ftextwave/lists"}