Committed by
GitHub
Add Flutter example for Kokoro TTS (#1776)
正在显示
1 个修改的文件
包含
35 行增加
和
8 行删除
| @@ -24,13 +24,14 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | @@ -24,13 +24,14 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | ||
| 24 | 24 | ||
| 25 | String modelDir = ''; | 25 | String modelDir = ''; |
| 26 | String modelName = ''; | 26 | String modelName = ''; |
| 27 | + String voices = ''; // for Kokoro only | ||
| 27 | String ruleFsts = ''; | 28 | String ruleFsts = ''; |
| 28 | String ruleFars = ''; | 29 | String ruleFars = ''; |
| 29 | String lexicon = ''; | 30 | String lexicon = ''; |
| 30 | String dataDir = ''; | 31 | String dataDir = ''; |
| 31 | String dictDir = ''; | 32 | String dictDir = ''; |
| 32 | 33 | ||
| 33 | - // You can select an example below and change it according to match your | 34 | + // You can select an example below and change it accordingly to match your |
| 34 | // selected tts model | 35 | // selected tts model |
| 35 | 36 | ||
| 36 | // ============================================================ | 37 | // ============================================================ |
| @@ -84,6 +85,13 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | @@ -84,6 +85,13 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | ||
| 84 | // lexicon = 'lexicon.txt'; | 85 | // lexicon = 'lexicon.txt'; |
| 85 | // dictDir = 'vits-melo-tts-zh_en/dict'; | 86 | // dictDir = 'vits-melo-tts-zh_en/dict'; |
| 86 | 87 | ||
| 88 | + // Example 8 | ||
| 89 | + // https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/kokoro.html#kokoro-en-v0-19-english-11-speakers | ||
| 90 | + // modelDir = 'kokoro-en-v0_19'; | ||
| 91 | + // modelName = 'model.onnx'; | ||
| 92 | + // voices = 'voices.bin'; | ||
| 93 | + // dataDir = 'kokoro-en-v0_19/espeak-ng-data'; | ||
| 94 | + | ||
| 87 | // ============================================================ | 95 | // ============================================================ |
| 88 | // Please don't change the remaining part of this function | 96 | // Please don't change the remaining part of this function |
| 89 | // ============================================================ | 97 | // ============================================================ |
| @@ -126,17 +134,36 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | @@ -126,17 +134,36 @@ Future<sherpa_onnx.OfflineTts> createOfflineTts() async { | ||
| 126 | } | 134 | } |
| 127 | 135 | ||
| 128 | final tokens = p.join(directory.path, modelDir, 'tokens.txt'); | 136 | final tokens = p.join(directory.path, modelDir, 'tokens.txt'); |
| 137 | + if (voices != '') { | ||
| 138 | + voices = p.join(directory.path, modelDir, voices); | ||
| 139 | + } | ||
| 129 | 140 | ||
| 130 | - final vits = sherpa_onnx.OfflineTtsVitsModelConfig( | ||
| 131 | - model: modelName, | ||
| 132 | - lexicon: lexicon, | ||
| 133 | - tokens: tokens, | ||
| 134 | - dataDir: dataDir, | ||
| 135 | - dictDir: dictDir, | ||
| 136 | - ); | 141 | + late final sherpa_onnx.OfflineTtsVitsModelConfig vits; |
| 142 | + late final sherpa_onnx.OfflineTtsKokoroModelConfig kokoro; | ||
| 143 | + | ||
| 144 | + if (voices != '') { | ||
| 145 | + vits = sherpa_onnx.OfflineTtsVitsModelConfig(); | ||
| 146 | + kokoro = sherpa_onnx.OfflineTtsKokoroModelConfig( | ||
| 147 | + model: modelName, | ||
| 148 | + voices: voices, | ||
| 149 | + tokens: tokens, | ||
| 150 | + dataDir: dataDir, | ||
| 151 | + ); | ||
| 152 | + } else { | ||
| 153 | + vits = sherpa_onnx.OfflineTtsVitsModelConfig( | ||
| 154 | + model: modelName, | ||
| 155 | + lexicon: lexicon, | ||
| 156 | + tokens: tokens, | ||
| 157 | + dataDir: dataDir, | ||
| 158 | + dictDir: dictDir, | ||
| 159 | + ); | ||
| 160 | + | ||
| 161 | + kokoro = sherpa_onnx.OfflineTtsKokoroModelConfig(); | ||
| 162 | + } | ||
| 137 | 163 | ||
| 138 | final modelConfig = sherpa_onnx.OfflineTtsModelConfig( | 164 | final modelConfig = sherpa_onnx.OfflineTtsModelConfig( |
| 139 | vits: vits, | 165 | vits: vits, |
| 166 | + kokoro: kokoro, | ||
| 140 | numThreads: 2, | 167 | numThreads: 2, |
| 141 | debug: true, | 168 | debug: true, |
| 142 | provider: 'cpu', | 169 | provider: 'cpu', |
-
请 注册 或 登录 后发表评论