chua commited on
Commit
362432a
·
verified ·
1 Parent(s): fdfbf44

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +199 -187
README.md CHANGED
@@ -1,188 +1,200 @@
1
- ---
2
- library_name: transformers
3
- tags:
4
- - text-to-speech
5
- - automatic-speech-recognition
6
- - voice-conversion
7
- - speech
8
- - audio
9
- pipeline_tag: text-to-speech
10
- language:
11
- - en
12
- - zh
13
- license: apache-2.0
14
- homepage: https://autoark.github.io/GPA/
15
- repository: https://github.com/AutoArk/GPA
16
- ---
17
- <div align="center">
18
- <img src="figures/GPA_intro.png" width="80%" alt="GPA Logo"/>
19
-
20
- # GPA: One Model for Speech Recognition, Text-to-Speech, and Voice Conversion
21
-
22
- [![GitHub](https://img.shields.io/badge/GitHub-AutoArk%2FGPA-blue?logo=github)](https://github.com/AutoArk/GPA)
23
-
24
- </div>
25
-
26
- > **TL;DR** GPA incorporates three speech tasks into one single model and this repo includes codes of training, fine-tuning and effecient deployment of GPA.
27
-
28
- ## 📖 Abstract
29
-
30
- **GPA** stands for **General Purpose Audio**.
31
-
32
- In academia, a student’s GPA (Grade Point Average) serves as a unified metric that reflects performance across diverse subjects—ranging from Calculus and Philosophy to Gym class.
33
-
34
- Similarly, our GPA model unifies the three major pillars of audio tasks—Text-to-Speech (TTS), Automatic Speech Recognition (ASR), and Voice Conversion (VC)—into a single auto-regreesive transformer.
35
- * Our open-source content includes support for multiple frameworks and provides **production-ready code suitable for cloud deployment.**
36
- * we include concise **inference examples** and **training pipelines** for research purpose.
37
- * The released 0.3B model is also perfect for **edge devices** and edge deployment is to be released.
38
-
39
- ## 🔍 Model Overview
40
-
41
- <div align="center">
42
- <img src="figures/GPA.png" width="80%" alt="GPA Model Architecture"/>
43
- <br>
44
- <div style="text-align: justify; width: 100%; margin: 10px auto; text-indent: 2em;">
45
- <strong>Figure 1: Architecture of the proposed GPA framework.</strong> The model utilizes a shared Large Language Model (LLM) backbone to unify three core audio tasks: Understanding (ASR), Generation (TTS), and Editing (Voice Conversion). Depending on the task, the model processes different combinations of inputs (Source Audio, Target Text, or Reference Audio) via Semantic and Acoustic modules to generate the corresponding text or audio output.
46
- </div>
47
- </div>
48
-
49
-
50
- ## ⚡ Model Performance
51
-
52
- The following results are obtained by benchmarking services instantiated via [the official deployment scripts](#-deployment), reflecting end-to-end performance in realistic serving scenarios rather than offline inference.
53
-
54
- Among currently available open-source systems, **our model is one of the few that natively supports both concurrent and streaming inference, while achieving performance comparable to the first tier of existing approaches.**
55
-
56
- > **💡Note**
57
- >
58
- > * **TTFC**: Time To First Chunk (TTS)
59
- > * **TTFT**: Time To First Token (ASR)
60
- > * **RTF**: Real-Time Factor (audio duration / synthesis time)
61
-
62
- ### TTS Streaming Benchmark (Latency & Throughput)
63
-
64
- <div align="center">
65
- <table>
66
- <thead>
67
- <tr>
68
- <th>Concurrency</th>
69
- <th>Avg TTFC (ms)</th>
70
- <th>P50 TTFC (ms)</th>
71
- <th>P99 TTFC (ms)</th>
72
- <th>Avg RTF</th>
73
- <th>P50 RTF</th>
74
- <th>P99 RTF</th>
75
- <th>Audio Dur (s)</th>
76
- </tr>
77
- </thead>
78
- <tbody>
79
- <tr><td>1</td><td>258.8</td><td>258.8</td><td>258.8</td><td>0.197</td><td>0.197</td><td>0.197</td><td>6.44</td></tr>
80
- <tr><td>5</td><td>385.0</td><td>394.7</td><td>396.2</td><td>0.218</td><td>0.217</td><td>0.248</td><td>6.76</td></tr>
81
- <tr><td>10</td><td>544.6</td><td>564.2</td><td>566.7</td><td>0.282</td><td>0.301</td><td>0.313</td><td>6.49</td></tr>
82
- <tr><td>20</td><td>977.8</td><td>977.9</td><td>982.9</td><td>0.470</td><td>0.490</td><td>0.538</td><td>7.19</td></tr>
83
- <tr><td>40</td><td>1797.0</td><td>1736.4</td><td>2564.5</td><td>0.421</td><td>0.400</td><td>0.587</td><td>6.33</td></tr>
84
- <tr><td>80</td><td>3786.4</td><td>4054.4</td><td>5415.8</td><td>0.763</td><td>0.763</td><td>1.096</td><td>6.32</td></tr>
85
- <tr><td>160</td><td>9847.9</td><td>10239.9</td><td>14350.3</td><td>1.718</td><td>1.740</td><td>2.577</td><td>6.44</td></tr>
86
- </tbody>
87
- </table>
88
- <p><strong>Table 2. TTS Streaming RTF and Audio Duration</strong></p>
89
- </div>
90
-
91
- ### ASR Streaming Benchmark
92
-
93
- <div align="center">
94
- <table>
95
- <thead>
96
- <tr>
97
- <th>Concurrency</th>
98
- <th>Avg TTFT (ms)</th>
99
- <th>P50 TTFT (ms)</th>
100
- <th>P99 TTFT (ms)</th>
101
- <th>Avg Total (ms)</th>
102
- </tr>
103
- </thead>
104
- <tbody>
105
- <tr><td>1</td><td>157.5</td><td>157.5</td><td>157.5</td><td>190.9</td></tr>
106
- <tr><td>5</td><td>394.1</td><td>393.7</td><td>395.9</td><td>400.0</td></tr>
107
- <tr><td>10</td><td>589.6</td><td>721.3</td><td>723.3</td><td>598.1</td></tr>
108
- <tr><td>20</td><td>1316.3</td><td>1495.6</td><td>1500.4</td><td>1317.8</td></tr>
109
- <tr><td>40</td><td>2690.9</td><td>2678.3</td><td>2861.4</td><td>2693.7</td></tr>
110
- <tr><td>80</td><td>3833.4</td><td>3961.3</td><td>4027.0</td><td>3845.1</td></tr>
111
- <tr><td>160</td><td>5037.0</td><td>5689.3</td><td>6676.0</td><td>5044.0</td></tr>
112
- </tbody>
113
- </table>
114
- <p><strong>Table 3. ASR Streaming Latency vs Concurrency</strong></p>
115
- </div>
116
-
117
- ## 📊 Evaluation Metric Results
118
-
119
- ### TTS Evaluation Table
120
-
121
- | Model | Open-Source | Model Size | test-zh CER (%) ↓ | test-zh Sim (%) ↑ | test-en WER (%) ↓ | test-en Sim (%) ↑ |
122
- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
123
- | **Multi-Stage or NAR Methods** | | | | | | |
124
- | Human | - | - | 1.26 | 75.5 | 2.14 | 73.4 |
125
- | Seed-TTS | ❌ | - | 1.12 | **79.6** | 2.25 | **76.2** |
126
- | MiniMax-Speech | ❌ | - | 0.83 | 78.3 | 1.65 | 69.2 |
127
- | F5-TTS | ✅ | 0.3B | 1.52 | 74.1 | 2.00 | 64.7 |
128
- | CosyVoice2 | ✅ | 0.5B | 1.45 | 75.7 | 2.57 | 65.9 |
129
- | FireRedTTS2 | | 1.5B | 1.14 | 73.2 | 1.95 | 66.5 |
130
- | Index-TTS2 | ✅ | 1.5B | 1.03 | 76.5 | 2.23 | 70.6 |
131
- | VibeVoice-1.5B | ✅ | 1.5B | 1.16 | 74.4 | 3.04 | 68.9 |
132
- | VibeVoice-Realtime | ✅ | 0.5B | - | - | 2.05 | 63.3 |
133
- | HiggsAudio-v2 | | 3B | 1.50 | 74.0 | 2.44 | 67.7 |
134
- | VoxCPM | | 0.5B | 0.93 | 77.2 | 1.85 | 72.9 |
135
- | GLM-TTS | | 1.5B | 1.03 | 76.1 | - | - |
136
- | GLM-TTS RL | | 1.5B | 0.89 | 76.4 | - | - |
137
- | Fun-CosyVoice3-0.5B-2512 | | 0.5B | 1.21 | 78.0 | 2.24 | 71.8 |
138
- | Fun-CosyVoice3-0.5B-2512_RL | | 0.5B | 0.81 | 77.4 | 1.68 | 69.5 |
139
- | **One-Stage AR Methods** | | | | | | |
140
- | Spark TTS | ✅ | 0.5B | 1.20 | 66.0 | 1.98 | 57.3 |
141
- | GPA-0.3B-preview | ✅ | 0.3B | **0.95** | 65.9 | **1.51** | 56.5 |
142
-
143
- ### ASR Evaluation Table
144
-
145
- **Note:** ASR results on Librispeech and Aishell-1. WER (%) is reported for Librispeech, and CER (%) is reported for Aishell-1.
146
-
147
- | Model | Model Size | Librispeech test-clean | Aishell-1 |
148
- | :--- | :---: | :---: | :---: |
149
- | **Models with < 0.5B parameters** | | | |
150
- | Whisper-S | 0.24B | 3.13 | - |
151
- | GPA-0.3B-preview | 0.3B | 8.88 | 4.50 |
152
- | **Models with > 0.5B parameters** | | | |
153
- | Fun-ASR-nano | 0.8B | 1.76 | 1.80 |
154
- | FireRed-ASR | 1.1B | 1.84 | 0.54 |
155
- | GLM-ASR-nano | 1.5B | 2.00 | 1.81 |
156
- | GLM-ASR-nano* | 1.5B | 2.17 | 2.17 |
157
- | Whisper-L | 1.55B | 1.82 | 4.72 |
158
- | Kimi-Audio | - | 1.32 | 0.71 |
159
- | Step-Audio2 | - | 1.17 | 0.63 |
160
- | Seed-ASR | - | 1.58 | 0.68 |
161
- | Seed-ASR* | - | 2.80 | 1.63 |
162
- | Fun-ASR | 7.7B | 1.51 | 1.22 |
163
-
164
- ## 🙏 Acknowledgements
165
-
166
- We borrowed a lot of code from the following excellent projects:
167
-
168
- - [Spark-TTS](https://github.com/SparkAudio/Spark-TTS)
169
- - [GLM-4-Voice](https://github.com/zai-org/GLM-4-Voice/tree/main/speech_tokenizer)
170
- - [Emilia](https://github.com/open-mmlab/Amphion/tree/main/preprocessors/Emilia)
171
- - [FlashTTS](https://github.com/HuiResearch/FlashTTS/tree/master/flashtts)
172
- - [Qwen](https://github.com/QwenLM/Qwen)
173
-
174
- ## 🔗 Citation
175
-
176
- If you find GPA useful for your research or projects, please cite us:
177
-
178
- ```bibtex
179
- @misc{cai2026unifyingspeechrecognitionsynthesis,
180
- title={Unifying Speech Recognition, Synthesis and Conversion with Autoregressive Transformers},
181
- author={Runyuan Cai and Yu Lin and Yiming Wang and Chunlin Fu and Xiaodong Zeng},
182
- year={2026},
183
- eprint={2601.10770},
184
- archivePrefix={arXiv},
185
- primaryClass={cs.SD},
186
- url={https://arxiv.org/abs/2601.10770},
187
- }
 
 
 
 
 
 
 
 
 
 
 
 
188
  ```
 
1
+ ---
2
+ library_name: transformers
3
+ tags:
4
+ - text-to-speech
5
+ - automatic-speech-recognition
6
+ - voice-conversion
7
+ - speech
8
+ - audio
9
+ pipeline_tag: text-to-speech
10
+ language:
11
+ - en
12
+ - zh
13
+ license: apache-2.0
14
+ homepage: https://autoark.github.io/GPA/
15
+ repository: https://github.com/AutoArk/GPA
16
+ ---
17
+ <div align="center">
18
+ <img src="figures/GPA_intro.png" width="80%" alt="GPA Logo"/>
19
+
20
+ # GPA: One Model for Speech Recognition, Text-to-Speech, and Voice Conversion
21
+
22
+ [![GitHub](https://img.shields.io/badge/GitHub-AutoArk%2FGPA-blue?logo=github)](https://github.com/AutoArk/GPA)
23
+
24
+ </div>
25
+
26
+ > **TL;DR** GPA incorporates three speech tasks into one single model and this repo includes codes of training, fine-tuning and effecient deployment of GPA.
27
+
28
+ ## 🆕 GPA-TTS Updates
29
+
30
+ **GPA-TTS** is a standalone, ultra-efficient TTS runtime distilled from GPA, designed for edge deployment.
31
+
32
+ **INT8/INT4 quantized**: among the smallest open-source TTS runtimes
33
+ • **Runtime-selectable decoder**: INT8 / FP16 / FP32 (quality vs. efficiency trade-off)
34
+ **Zero-shot voice cloning** from short reference audio
35
+ **Fully local**: no external LLM required
36
+ **Production-ready REST API** with voice management
37
+
38
+ Built for developers deploying voice applications on resource-constrained devices.
39
+
40
+ ## 📖 Abstract
41
+
42
+ **GPA** stands for **General Purpose Audio**.
43
+
44
+ In academia, a student’s GPA (Grade Point Average) serves as a unified metric that reflects performance across diverse subjects—ranging from Calculus and Philosophy to Gym class.
45
+
46
+ Similarly, our GPA model unifies the three major pillars of audio tasks—Text-to-Speech (TTS), Automatic Speech Recognition (ASR), and Voice Conversion (VC)—into a single auto-regreesive transformer.
47
+ * Our open-source content includes support for multiple frameworks and provides **production-ready code suitable for cloud deployment.**
48
+ * we include concise **inference examples** and **training pipelines** for research purpose.
49
+ * The released 0.3B model is also perfect for **edge devices** and edge deployment is to be released.
50
+
51
+ ## 🔍 Model Overview
52
+
53
+ <div align="center">
54
+ <img src="figures/GPA.png" width="80%" alt="GPA Model Architecture"/>
55
+ <br>
56
+ <div style="text-align: justify; width: 100%; margin: 10px auto; text-indent: 2em;">
57
+ <strong>Figure 1: Architecture of the proposed GPA framework.</strong> The model utilizes a shared Large Language Model (LLM) backbone to unify three core audio tasks: Understanding (ASR), Generation (TTS), and Editing (Voice Conversion). Depending on the task, the model processes different combinations of inputs (Source Audio, Target Text, or Reference Audio) via Semantic and Acoustic modules to generate the corresponding text or audio output.
58
+ </div>
59
+ </div>
60
+
61
+
62
+ ## Model Performance
63
+
64
+ The following results are obtained by benchmarking services instantiated via [the official deployment scripts](#-deployment), reflecting end-to-end performance in realistic serving scenarios rather than offline inference.
65
+
66
+ Among currently available open-source systems, **our model is one of the few that natively supports both concurrent and streaming inference, while achieving performance comparable to the first tier of existing approaches.**
67
+
68
+ > **💡Note**
69
+ >
70
+ > * **TTFC**: Time To First Chunk (TTS)
71
+ > * **TTFT**: Time To First Token (ASR)
72
+ > * **RTF**: Real-Time Factor (audio duration / synthesis time)
73
+
74
+ ### TTS Streaming Benchmark (Latency & Throughput)
75
+
76
+ <div align="center">
77
+ <table>
78
+ <thead>
79
+ <tr>
80
+ <th>Concurrency</th>
81
+ <th>Avg TTFC (ms)</th>
82
+ <th>P50 TTFC (ms)</th>
83
+ <th>P99 TTFC (ms)</th>
84
+ <th>Avg RTF</th>
85
+ <th>P50 RTF</th>
86
+ <th>P99 RTF</th>
87
+ <th>Audio Dur (s)</th>
88
+ </tr>
89
+ </thead>
90
+ <tbody>
91
+ <tr><td>1</td><td>258.8</td><td>258.8</td><td>258.8</td><td>0.197</td><td>0.197</td><td>0.197</td><td>6.44</td></tr>
92
+ <tr><td>5</td><td>385.0</td><td>394.7</td><td>396.2</td><td>0.218</td><td>0.217</td><td>0.248</td><td>6.76</td></tr>
93
+ <tr><td>10</td><td>544.6</td><td>564.2</td><td>566.7</td><td>0.282</td><td>0.301</td><td>0.313</td><td>6.49</td></tr>
94
+ <tr><td>20</td><td>977.8</td><td>977.9</td><td>982.9</td><td>0.470</td><td>0.490</td><td>0.538</td><td>7.19</td></tr>
95
+ <tr><td>40</td><td>1797.0</td><td>1736.4</td><td>2564.5</td><td>0.421</td><td>0.400</td><td>0.587</td><td>6.33</td></tr>
96
+ <tr><td>80</td><td>3786.4</td><td>4054.4</td><td>5415.8</td><td>0.763</td><td>0.763</td><td>1.096</td><td>6.32</td></tr>
97
+ <tr><td>160</td><td>9847.9</td><td>10239.9</td><td>14350.3</td><td>1.718</td><td>1.740</td><td>2.577</td><td>6.44</td></tr>
98
+ </tbody>
99
+ </table>
100
+ <p><strong>Table 2. TTS Streaming RTF and Audio Duration</strong></p>
101
+ </div>
102
+
103
+ ### ASR Streaming Benchmark
104
+
105
+ <div align="center">
106
+ <table>
107
+ <thead>
108
+ <tr>
109
+ <th>Concurrency</th>
110
+ <th>Avg TTFT (ms)</th>
111
+ <th>P50 TTFT (ms)</th>
112
+ <th>P99 TTFT (ms)</th>
113
+ <th>Avg Total (ms)</th>
114
+ </tr>
115
+ </thead>
116
+ <tbody>
117
+ <tr><td>1</td><td>157.5</td><td>157.5</td><td>157.5</td><td>190.9</td></tr>
118
+ <tr><td>5</td><td>394.1</td><td>393.7</td><td>395.9</td><td>400.0</td></tr>
119
+ <tr><td>10</td><td>589.6</td><td>721.3</td><td>723.3</td><td>598.1</td></tr>
120
+ <tr><td>20</td><td>1316.3</td><td>1495.6</td><td>1500.4</td><td>1317.8</td></tr>
121
+ <tr><td>40</td><td>2690.9</td><td>2678.3</td><td>2861.4</td><td>2693.7</td></tr>
122
+ <tr><td>80</td><td>3833.4</td><td>3961.3</td><td>4027.0</td><td>3845.1</td></tr>
123
+ <tr><td>160</td><td>5037.0</td><td>5689.3</td><td>6676.0</td><td>5044.0</td></tr>
124
+ </tbody>
125
+ </table>
126
+ <p><strong>Table 3. ASR Streaming Latency vs Concurrency</strong></p>
127
+ </div>
128
+
129
+ ## 📊 Evaluation Metric Results
130
+
131
+ ### TTS Evaluation Table
132
+
133
+ | Model | Open-Source | Model Size | test-zh CER (%) ↓ | test-zh Sim (%) ↑ | test-en WER (%) ↓ | test-en Sim (%) ↑ |
134
+ | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
135
+ | **Multi-Stage or NAR Methods** | | | | | | |
136
+ | Human | - | - | 1.26 | 75.5 | 2.14 | 73.4 |
137
+ | Seed-TTS | | - | 1.12 | **79.6** | 2.25 | **76.2** |
138
+ | MiniMax-Speech | | - | 0.83 | 78.3 | 1.65 | 69.2 |
139
+ | F5-TTS | | 0.3B | 1.52 | 74.1 | 2.00 | 64.7 |
140
+ | CosyVoice2 | ✅ | 0.5B | 1.45 | 75.7 | 2.57 | 65.9 |
141
+ | FireRedTTS2 | ✅ | 1.5B | 1.14 | 73.2 | 1.95 | 66.5 |
142
+ | Index-TTS2 | ✅ | 1.5B | 1.03 | 76.5 | 2.23 | 70.6 |
143
+ | VibeVoice-1.5B | ✅ | 1.5B | 1.16 | 74.4 | 3.04 | 68.9 |
144
+ | VibeVoice-Realtime | ✅ | 0.5B | - | - | 2.05 | 63.3 |
145
+ | HiggsAudio-v2 | | 3B | 1.50 | 74.0 | 2.44 | 67.7 |
146
+ | VoxCPM | ✅ | 0.5B | 0.93 | 77.2 | 1.85 | 72.9 |
147
+ | GLM-TTS | | 1.5B | 1.03 | 76.1 | - | - |
148
+ | GLM-TTS RL | | 1.5B | 0.89 | 76.4 | - | - |
149
+ | Fun-CosyVoice3-0.5B-2512 | | 0.5B | 1.21 | 78.0 | 2.24 | 71.8 |
150
+ | Fun-CosyVoice3-0.5B-2512_RL | ✅ | 0.5B | 0.81 | 77.4 | 1.68 | 69.5 |
151
+ | **One-Stage AR Methods** | | | | | | |
152
+ | Spark TTS | ✅ | 0.5B | 1.20 | 66.0 | 1.98 | 57.3 |
153
+ | GPA-0.3B-preview | ✅ | 0.3B | **0.95** | 65.9 | **1.51** | 56.5 |
154
+
155
+ ### ASR Evaluation Table
156
+
157
+ **Note:** ASR results on Librispeech and Aishell-1. WER (%) is reported for Librispeech, and CER (%) is reported for Aishell-1.
158
+
159
+ | Model | Model Size | Librispeech test-clean | Aishell-1 |
160
+ | :--- | :---: | :---: | :---: |
161
+ | **Models with < 0.5B parameters** | | | |
162
+ | Whisper-S | 0.24B | 3.13 | - |
163
+ | GPA-0.3B-preview | 0.3B | 8.88 | 4.50 |
164
+ | **Models with > 0.5B parameters** | | | |
165
+ | Fun-ASR-nano | 0.8B | 1.76 | 1.80 |
166
+ | FireRed-ASR | 1.1B | 1.84 | 0.54 |
167
+ | GLM-ASR-nano | 1.5B | 2.00 | 1.81 |
168
+ | GLM-ASR-nano* | 1.5B | 2.17 | 2.17 |
169
+ | Whisper-L | 1.55B | 1.82 | 4.72 |
170
+ | Kimi-Audio | - | 1.32 | 0.71 |
171
+ | Step-Audio2 | - | 1.17 | 0.63 |
172
+ | Seed-ASR | - | 1.58 | 0.68 |
173
+ | Seed-ASR* | - | 2.80 | 1.63 |
174
+ | Fun-ASR | 7.7B | 1.51 | 1.22 |
175
+
176
+ ## 🙏 Acknowledgements
177
+
178
+ We borrowed a lot of code from the following excellent projects:
179
+
180
+ - [Spark-TTS](https://github.com/SparkAudio/Spark-TTS)
181
+ - [GLM-4-Voice](https://github.com/zai-org/GLM-4-Voice/tree/main/speech_tokenizer)
182
+ - [Emilia](https://github.com/open-mmlab/Amphion/tree/main/preprocessors/Emilia)
183
+ - [FlashTTS](https://github.com/HuiResearch/FlashTTS/tree/master/flashtts)
184
+ - [Qwen](https://github.com/QwenLM/Qwen)
185
+
186
+ ## 🔗 Citation
187
+
188
+ If you find GPA useful for your research or projects, please cite us:
189
+
190
+ ```bibtex
191
+ @misc{cai2026unifyingspeechrecognitionsynthesis,
192
+ title={Unifying Speech Recognition, Synthesis and Conversion with Autoregressive Transformers},
193
+ author={Runyuan Cai and Yu Lin and Yiming Wang and Chunlin Fu and Xiaodong Zeng},
194
+ year={2026},
195
+ eprint={2601.10770},
196
+ archivePrefix={arXiv},
197
+ primaryClass={cs.SD},
198
+ url={https://arxiv.org/abs/2601.10770},
199
+ }
200
  ```