selam-tts / README.md
snackshell's picture
Update README.md
b1772e2 verified
---
title: 'Multilingual TTS: Amharic, Oromo, Somali, English & More'
emoji: ๐ŸŒ
colorFrom: gray
colorTo: purple
sdk: gradio
sdk_version: 5.42.0
app_file: app.py
pinned: false
license: mit
short_description: Text-to-Speech for Amharic, Oromo, English, and more.
---
# Multilingual Text-to-Speech Converter
<div align="center">
<img src="httpshttps://raw.githubusercontent.com/snackshell/eng-amh-tts/main/assets/demo.png" width="800" alt="Multilingual TTS Interface">
<br>
<em>Natural sounding speech synthesis for a wide variety of languages.</em>
</div>
[![Open in Spaces](https://img.shields.io/badge/๐Ÿค—-Try%20Live-blue)](https://huggingface.co/spaces/snackshell/selam-tts)
## Key Features ๐ŸŒŸ
- **Multilingual Support**: Seamlessly generate speech for Amharic, Oromo, Somali, Tigrinya, English, Arabic, French, German, Italian, Japanese, Korean, and Chinese.
- **Multiple Natural Voices**: Each language comes with distinct male and female speaker options.
- **Smart Fallbacks**: Unsupported languages like Tigrinya and Oromo use the closest available high-quality voice for pronunciation.
- **Real-time Generation**: Fast response time for most requests.
- **Modern UI**: Clean and easy-to-use interface powered by Gradio.
## How to Use ๐ŸŽค
1. **Select Language**: Choose your desired language from the dropdown.
2. **Choose Voice**: Pick your preferred speaker.
3. **Enter Text**: Type or paste your text.
4. **Generate**: Click the "Generate Audio" button.
5. **Play**: Listen directly in your browser.
## Supported Voices ๐ŸŽง
| Language | Speaker | Gender | Voice ID / Fallback |
| :--- | :--- | :--- | :--- |
| Amharic ๐Ÿ‡ช๐Ÿ‡น | Mekdes | Female | `am-ET-MekdesNeural` |
| Amharic ๐Ÿ‡ช๐Ÿ‡น | Ameha | Male | `am-ET-AmehaNeural` |
| Oromo ๐Ÿ‡ช๐Ÿ‡น | Zuri | Female | `sw-KE-ZuriNeural` (Swahili) |
| Oromo ๐Ÿ‡ช๐Ÿ‡น | Rafiki | Male | `sw-KE-RafikiNeural` (Swahili) |
| Somali ๐Ÿ‡ธ๐Ÿ‡ด | Ubax | Female | `so-SO-UbaxNeural` |
| Somali ๐Ÿ‡ธ๐Ÿ‡ด | Muuse | Male | `so-SO-MuuseNeural` |
| Tigrinya ๐Ÿ‡ช๐Ÿ‡ท | Lulia | Female | `am-ET-MekdesNeural` (Amharic)|
| Tigrinya ๐Ÿ‡ช๐Ÿ‡ท | Birhane | Male | `am-ET-AmehaNeural` (Amharic)|
| English ๐Ÿ‡ฌ๐Ÿ‡ง | Sonia | Female | `en-GB-SoniaNeural` |
| English ๐Ÿ‡ฌ๐Ÿ‡ง | Ryan | Male | `en-GB-RyanNeural` |
| Arabic ๐Ÿ‡ธ๐Ÿ‡ฆ | Zariyah | Female | `ar-SA-ZariyahNeural` |
| Arabic ๐Ÿ‡ธ๐Ÿ‡ฆ | Hamed | Male | `ar-SA-HamedNeural` |
| French ๐Ÿ‡ซ๐Ÿ‡ท | Denise | Female | `fr-FR-DeniseNeural` |
| French ๐Ÿ‡ซ๐Ÿ‡ท | Henri | Male | `fr-FR-HenriNeural` |
| German ๐Ÿ‡ฉ๐Ÿ‡ช | Katja | Female | `de-DE-KatjaNeural` |
| German ๐Ÿ‡ฉ๐Ÿ‡ช | Conrad | Male | `de-DE-ConradNeural` |
| Italian ๐Ÿ‡ฎ๐Ÿ‡น | Elsa | Female | `it-IT-ElsaNeural` |
| Italian ๐Ÿ‡ฎ๐Ÿ‡น | Diego | Male | `it-IT-DiegoNeural` |
| Japanese ๐Ÿ‡ฏ๐Ÿ‡ต | Nanami | Female | `ja-JP-NanamiNeural` |
| Japanese ๐Ÿ‡ฏ๐Ÿ‡ต | Keita | Male | `ja-JP-KeitaNeural` |
| Korean ๐Ÿ‡ฐ๐Ÿ‡ท | Sun-Hi | Female | `ko-KR-SunHiNeural` |
| Korean ๐Ÿ‡ฐ๐Ÿ‡ท | InJoon | Male | `ko-KR-InJoonNeural` |
| Chinese (Simp.) ๐Ÿ‡จ๐Ÿ‡ณ | Xiaoxiao | Female | `zh-CN-XiaoxiaoNeural` |
| Chinese (Simp.) ๐Ÿ‡จ๐Ÿ‡ณ | Yunxi | Male | `zh-CN-YunxiNeural` |
| Chinese (Trad.) ๐Ÿ‡น๐Ÿ‡ผ| HsiaoChen| Female | `zh-TW-HsiaoChenNeural` |
| Chinese (Trad.) ๐Ÿ‡น๐Ÿ‡ผ| YunJhe | Male | `zh-TW-YunJheNeural` |
## Technical Flow ๐Ÿ”ง
```mermaid
sequenceDiagram
User->>+Gradio App: Select Language & Voice
User->>+Gradio App: Input Text
Gradio App->>+edge-tts: Send Request
edge-tts-->>-Gradio App: Return Audio
Gradio App->>+User: Play Audio
````
## Local Development ๐Ÿ’ป
```bash
# Clone the repository
git clone [https://huggingface.co/spaces/snackshell/selam-tts](https://huggingface.co/spaces/snackshell/selam-tts)
cd selam-tts
# Install dependencies
pip install -r requirements.txt
# Run the app
python app.py
```
## Acknowledgments ๐Ÿ™
- Voice Technology: Microsoft Edge TTS
- Hosting: Hugging Face Spaces
- UI Framework: Gradio
- Maintained by: [Bana Codes](https://t.me/banacodes)
[๐Ÿ› Report Issues](https://github.com/snackshell/eng-amh-tts/issues)
```
```