Fangjun Kuang
Committed by GitHub

Add iOS example for Kokoro TTS (#1737)

@@ -160,12 +160,34 @@ func getTtsFor_matcha_icefall_zh_baker() -> SherpaOnnxOfflineTtsWrapper { @@ -160,12 +160,34 @@ func getTtsFor_matcha_icefall_zh_baker() -> SherpaOnnxOfflineTtsWrapper {
160 return SherpaOnnxOfflineTtsWrapper(config: &config) 160 return SherpaOnnxOfflineTtsWrapper(config: &config)
161 } 161 }
162 162
  163 +func getTtsFor_kokoro_en_v0_19() -> SherpaOnnxOfflineTtsWrapper {
  164 + // please see https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/kokoro.html#kokoro-en-v0-19-english-11-speakers
  165 +
  166 + let model = getResource("model", "onnx")
  167 + let voices = getResource("voices", "bin")
  168 +
  169 + // tokens.txt
  170 + let tokens = getResource("tokens", "txt")
  171 +
  172 + // in this case, we don't need lexicon.txt
  173 + let dataDir = resourceURL(to: "espeak-ng-data")
  174 +
  175 + let kokoro = sherpaOnnxOfflineTtsKokoroModelConfig(
  176 + model: model, voices: voices, tokens: tokens, dataDir: dataDir)
  177 + let modelConfig = sherpaOnnxOfflineTtsModelConfig(kokoro: kokoro)
  178 + var config = sherpaOnnxOfflineTtsConfig(model: modelConfig)
  179 +
  180 + return SherpaOnnxOfflineTtsWrapper(config: &config)
  181 +}
  182 +
163 func createOfflineTts() -> SherpaOnnxOfflineTtsWrapper { 183 func createOfflineTts() -> SherpaOnnxOfflineTtsWrapper {
164 // Please enable only one of them 184 // Please enable only one of them
165 185
  186 + return getTtsFor_kokoro_en_v0_19()
  187 +
166 // return getTtsFor_matcha_icefall_zh_baker() 188 // return getTtsFor_matcha_icefall_zh_baker()
167 189
168 - return getTtsFor_en_US_amy_low() 190 + // return getTtsFor_en_US_amy_low()
169 191
170 // return getTtsForVCTK() 192 // return getTtsForVCTK()
171 193