Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
sherpaonnx
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Fangjun Kuang
2025-02-07 18:43:26 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2025-02-07 18:43:26 +0800
Commit
5ca246559bb896d0c6f977d1c0a19bc4b05876e2
5ca24655
1 parent
239b43c2
Add HarmonyOS demo for Kokoro TTS 1.0 (#1813)
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
41 行增加
和
15 行删除
harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/NonStreamingTts.ets
harmony-os/SherpaOnnxTts/entry/src/main/ets/workers/NonStreamingTtsWorker.ets
harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/NonStreamingTts.ets
查看文件 @
5ca2465
...
...
@@ -34,6 +34,8 @@ export class OfflineTtsKokoroModelConfig {
public tokens: string = '';
public dataDir: string = '';
public lengthScale: number = 1.0;
public dictDir: string = '';
public lexicon: string = '';
}
export class OfflineTtsModelConfig {
...
...
harmony-os/SherpaOnnxTts/entry/src/main/ets/workers/NonStreamingTtsWorker.ets
查看文件 @
5ca2465
...
...
@@ -179,6 +179,16 @@ function initTts(context: Context): OfflineTts {
// voices = 'voices.bin'
// dataDir = 'espeak-ng-data';
// Example 11
// https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/kokoro.html
// modelDir = 'kokoro-multi-lang-v1_0';
// modelName = 'model.onnx';
// voices = 'voices.bin'
// dataDir = 'espeak-ng-data';
// dictDir = 'dict';
// lexicon = 'lexicon-us-en.txt,lexicon-zh.txt';
// ruleFsts = `date-zh.fst,phone-zh.fst,number-zh.fst`;
// ============================================================
// Please don't change the remaining part of this function
// ============================================================
...
...
@@ -225,7 +235,14 @@ function initTts(context: Context): OfflineTts {
ruleFars = tmp.join(',');
}
if (lexicon != '') {
if (lexicon.includes(",")) {
let v = lexicon.split(',')
let tmp: string[] = [];
for (const f of v) {
tmp.push(modelDir + '/' + f);
}
lexicon = tmp.join(',');
} else if (lexicon != '') {
lexicon = modelDir + '/' + lexicon;
}
...
...
@@ -250,26 +267,33 @@ function initTts(context: Context): OfflineTts {
config.model.vits.model = modelName;
}
config.model.vits.lexicon = lexicon;
config.model.vits.tokens = tokens;
config.model.vits.dataDir = dataDir;
config.model.vits.dictDir = dictDir;
config.model.matcha.acousticModel = acousticModelName;
config.model.matcha.vocoder = vocoder;
config.model.matcha.lexicon = lexicon;
config.model.matcha.tokens = tokens;
config.model.matcha.dataDir = dataDir;
config.model.matcha.dictDir = dictDir;
if (voices == '') {
config.model.vits.lexicon = lexicon;
config.model.vits.tokens = tokens;
config.model.vits.dataDir = dataDir;
config.model.vits.dictDir = dictDir;
config.model.matcha.acousticModel = acousticModelName;
config.model.matcha.vocoder = vocoder;
config.model.matcha.lexicon = lexicon;
config.model.matcha.tokens = tokens;
config.model.matcha.dataDir = dataDir;
config.model.matcha.dictDir = dictDir;
}
if (voices != '') {
config.model.kokoro.model = modelName;
} else {
config.model.kokoro.model = '';
}
config.model.kokoro.voices = voices;
config.model.kokoro.tokens = tokens;
config.model.kokoro.dataDir = dataDir;
if (voices != '') {
config.model.kokoro.voices = voices;
config.model.kokoro.tokens = tokens;
config.model.kokoro.dataDir = dataDir;
config.model.kokoro.dictDir = dictDir;
config.model.kokoro.lexicon = lexicon;
}
config.model.numThreads = 2;
config.model.debug = true;
...
...
请
注册
或
登录
后发表评论