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
2023-10-27 11:12:45 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2023-10-27 11:12:45 +0800
Commit
fbf4c903e19cafb5d833cf8650a2127d15bc6fc6
fbf4c903
1 parent
93ef4ee4
Support German TTS (#394)
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
15 行增加
和
12 行删除
android/SherpaOnnxTts/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt
sherpa-onnx/csrc/lexicon.cc
sherpa-onnx/csrc/lexicon.h
android/SherpaOnnxTts/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt
查看文件 @
fbf4c90
...
...
@@ -77,20 +77,13 @@ class MainActivity : AppCompatActivity() {
return
}
Toast.makeText(applicationContext, "Generating...Please wait", Toast.LENGTH_LONG).show()
play.isEnabled = false;
val audio = tts.generate(text = textStr, sid = sidInt, speed = speedFloat)
val filename = application.filesDir.absolutePath + "/generated.wav"
val ok = audio.samples.size > 0 && audio.save(filename)
if (ok) {
play.isEnabled = true
Toast.makeText(
applicationContext,
"Generated! Please click play to listen to it",
Toast.LENGTH_LONG
).show()
} else {
play.isEnabled = false
}
}
...
...
@@ -110,4 +103,4 @@ class MainActivity : AppCompatActivity() {
val config = getOfflineTtsConfig(type = type, debug = true)!!
tts = OfflineTts(assetManager = application.assets, config = config)
}
}
\ No newline at end of file
}
...
...
sherpa-onnx/csrc/lexicon.cc
查看文件 @
fbf4c90
...
...
@@ -129,10 +129,12 @@ std::vector<int64_t> Lexicon::ConvertTextToTokenIds(
switch
(
language_
)
{
case
Language
:
:
kEnglish
:
return
ConvertTextToTokenIdsEnglish
(
text
);
case
Language
:
:
kGerman
:
return
ConvertTextToTokenIdsGerman
(
text
);
case
Language
:
:
kChinese
:
return
ConvertTextToTokenIdsChinese
(
text
);
default
:
SHERPA_ONNX_LOGE
(
"Unkno
nw
language: %d"
,
static_cast
<
int32_t
>
(
language_
));
SHERPA_ONNX_LOGE
(
"Unkno
wn
language: %d"
,
static_cast
<
int32_t
>
(
language_
));
exit
(
-
1
);
}
...
...
@@ -246,6 +248,8 @@ void Lexicon::InitLanguage(const std::string &_lang) {
ToLowerCase
(
&
lang
);
if
(
lang
==
"english"
)
{
language_
=
Language
::
kEnglish
;
}
else
if
(
lang
==
"german"
)
{
language_
=
Language
::
kGerman
;
}
else
if
(
lang
==
"chinese"
)
{
language_
=
Language
::
kChinese
;
}
else
{
...
...
@@ -269,8 +273,8 @@ void Lexicon::InitLexicon(std::istream &is) {
ToLowerCase
(
&
word
);
if
(
word2ids_
.
count
(
word
))
{
SHERPA_ONNX_LOGE
(
"Duplicated word: %s"
,
word
.
c_str
());
return
;
SHERPA_ONNX_LOGE
(
"Duplicated word: %s. Ignore it."
,
word
.
c_str
());
continue
;
}
while
(
iss
>>
phone
)
{
...
...
sherpa-onnx/csrc/lexicon.h
查看文件 @
fbf4c90
...
...
@@ -36,6 +36,11 @@ class Lexicon {
std
::
vector
<
int64_t
>
ConvertTextToTokenIds
(
const
std
::
string
&
text
)
const
;
private
:
std
::
vector
<
int64_t
>
ConvertTextToTokenIdsGerman
(
const
std
::
string
&
text
)
const
{
return
ConvertTextToTokenIdsEnglish
(
text
);
}
std
::
vector
<
int64_t
>
ConvertTextToTokenIdsEnglish
(
const
std
::
string
&
text
)
const
;
...
...
@@ -50,6 +55,7 @@ class Lexicon {
private
:
enum
class
Language
{
kEnglish
,
kGerman
,
kChinese
,
kUnknown
,
};
...
...
请
注册
或
登录
后发表评论