File size: 5,559 Bytes
7ae4bbf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
---
title: StyleTTS2 Text-to-Speech với Hiệu ứng Môi trường
emoji: 🎙️
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: "4.0.0"
app_file: app.py
pinned: false
license: mit
language:
- vi
- en
pipeline_tag: text-to-speech
tags:
- 'StyleTTS2'
- 'Text-to-Speech'
- 'Vietnamese'
- 'Audio'
- 'Speech'
- 'TTS'
- 'Environment'
- 'Effects'
- 'Gradio'
- 'AI'
- 'Voice'
---

<div style="text-align:center;">
  <h1>🎙️ StyleTTS2 Text-to-Speech với Hiệu ứng Môi trường</h1>
  <p>Ứng dụng Text-to-Speech sử dụng StyleTTS2 với khả năng thêm hiệu ứng môi trường âm thanh và điều chỉnh tốc độ nói.</p>
</div>

## ✨ Tính năng

- 🎤 **Text-to-Speech** sử dụng StyleTTS2
- 🌍 **Hiệu ứng môi trường**: Church, Hall, Cafe, Street, Office, Supermarket, Phone
-**Điều chỉnh tốc độ nói** từ 0.5x đến 2.0x
- 🔊 **Kiểm soát mức độ nhiễu** (SNR)
- 📊 **So sánh waveform** trực quan
- 🎭 **Tags cảm xúc** với emoji
- 🌐 **Giao diện web** thân thiện

## 🚀 Cách sử dụng

### 1. Nhập văn bản
Nhập văn bản tiếng Việt vào ô text. Bạn có thể sử dụng các tags để tạo cảm xúc:
- `<happy>vui vẻ</happy>`
- `<sad>buồn bã</sad>`
- `<angry>giận dữ</angry>`
- `<whisper>thì thầm</whisper>`

### 2. Chọn môi trường
- **Neutral**: Không có hiệu ứng
- **Church/Hall**: Thêm reverb (tiếng vang)
- **Cafe/Street/Office/Supermarket**: Thêm tiếng ồn nền
- **Phone**: Giới hạn tần số như điện thoại

### 3. Điều chỉnh tham số
- **Tốc độ nói**: 0.5x (chậm) đến 2.0x (nhanh)
- **Mức độ nhiễu**: Chỉ áp dụng cho môi trường có tiếng ồn

### 4. Tạo giọng nói
Nhấn nút "🎵 Tạo giọng nói" để tạo audio với hiệu ứng.

## 🎭 Tags cảm xúc

| Tag | Ý nghĩa | Emoji |
|-----|---------|-------|
| `<laugh>...</laugh>` | Cười thoải mái | 😆 |
| `<whisper>...</whisper>` | Thì thầm | 🤫 |
| `<naughty>...</naughty>` | Tinh nghịch | 😏 |
| `<giggle>...</giggle>` | Cười rúc rích | 😂 |
| `<tease>...</tease>` | Trêu chọc | 😉 |
| `<smirk>...</smirk>` | Đắc ý | 😼 |
| `<surprise>...</surprise>` | Ngạc nhiên | 😲 |
| `<shock>...</shock>` | Hoảng hốt | 😱 |
| `<romantic>...</romantic>` | Lãng mạn | ❤️ |
| `<shy>...</shy>` | Bẽn lẽn | 🫣 |
| `<excited>...</excited>` | Phấn khích | 🤩 |
| `<curious>...</curious>` | Tò mò | 🧐 |
| `<discover>...</discover>` | Phát hiện | ✨ |
| `<blush>...</blush>` | Ngượng ngùng | 🌸 |
| `<angry>...</angry>` | Giận dữ | 😡 |
| `<sad>...</sad>` | Buồn | 😢 |
| `<happy>...</happy>` | Vui vẻ | 😊 |
| `<fear>...</fear>` | Sợ hãi | 😨 |
| `<confident>...</confident>` | Tự tin | 😎 |
| `<serious>...</serious>` | Nghiêm túc | 😐 |
| `<tired>...</tired>` | Mệt mỏi | 🥱 |
| `<cry>...</cry>` | Khóc | 😭 |
| `<love>...</love>` | Yêu thương | 😍 |
| `<disgust>...</disgust>` | Ghê tởm | 🤢 |

## 🌍 Môi trường âm thanh

### Reverb Effects
- **Church**: Tiếng vang trong nhà thờ
- **Hall**: Tiếng vang trong hội trường

### Noise Effects
- **Cafe**: Tiếng ồn quán cà phê
- **Street**: Tiếng ồn đường phố
- **Office**: Tiếng ồn văn phòng
- **Supermarket**: Tiếng ồn siêu thị

### Filter Effects
- **Phone**: Giới hạn tần số như điện thoại

## 📊 SNR (Signal-to-Noise Ratio)

- **Giá trị cao (20-30 dB)**: Ít nhiễu, âm thanh rõ ràng
- **Giá trị trung bình (10-20 dB)**: Nhiễu vừa phải
- **Giá trị thấp (0-10 dB)**: Nhiều nhiễu, âm thanh khó nghe

## ⚡ Tốc độ nói

- **0.5x**: Nói chậm một nửa
- **0.8x**: Nói chậm một chút
- **1.0x**: Tốc độ bình thường
- **1.2x**: Nói nhanh một chút
- **1.5x**: Nói nhanh
- **2.0x**: Nói nhanh gấp đôi

## 🛠️ Cài đặt local

### Yêu cầu hệ thống
- Python >= 3.8
- espeak-ng (cho phonemizer)

### Cài đặt dependencies
```bash
pip install -r requirements.txt
```

### Cài đặt espeak-ng
```bash
# macOS
brew install espeak-ng

# Ubuntu/Debian
sudo apt-get install espeak-ng

# Windows: Tải từ GitHub releases
```

### Chạy ứng dụng
```bash
python app.py
```

## 🔧 Xử lý sự cố

### Model không tải được
- Kiểm tra kết nối internet
- Đảm bảo có đủ RAM (tối thiểu 4GB)
- Model sẽ được tải tự động từ Hugging Face

### Lỗi phonemizer
- Cài đặt espeak-ng theo hướng dẫn
- Khởi động lại ứng dụng

### Âm thanh không phát được
- Kiểm tra volume hệ thống
- Thử refresh trang web
- Kiểm tra trình duyệt có hỗ trợ audio không

## 📝 Ghi chú

- Model được tải lần đầu có thể mất vài phút
- Hỗ trợ cả GPU và CPU (tự động chuyển đổi)
- File giọng nói tham chiếu cần có trong thư mục `speakers/`
- Ứng dụng tối ưu cho tiếng Việt

## 🤝 Đóng góp

Mọi đóng góp đều được chào đón! Vui lòng tạo issue hoặc pull request.

## 📄 License

Dự án này sử dụng MIT License. StyleTTS2 model tuân thủ license của tác giả gốc.

## 🙏 Acknowledgments

- [StyleTTS2](https://github.com/yl4579/StyleTTS2) - Model gốc
- [Gradio](https://gradio.app/) - Web interface
- [Librosa](https://librosa.org/) - Audio processing
- [Phonemizer](https://github.com/bootphon/phonemizer) - Text processing