Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌安卓TTS人声名称_Android_Text To Speech - Fatal编程技术网

Android 谷歌安卓TTS人声名称

Android 谷歌安卓TTS人声名称,android,text-to-speech,Android,Text To Speech,我正在我的应用程序中使用。我想添加一个允许用户选择语音的设置。我从当前的TTS引擎(com.google.android.TTS,我只需要中文语音)中获取语音列表,并将其名称添加到设置中: val voices = tts.voices.filter {it.locale == Locale.SIMPLIFIED_CHINESE} 他们的名字看起来完全不可读,例如: cmn-cn-x-ssa-local cmn-cn-x-ccc-network cmn-cn-x-ccd-local 有没有一

我正在我的应用程序中使用。我想添加一个允许用户选择语音的设置。我从当前的TTS引擎(com.google.android.TTS,我只需要中文语音)中获取语音列表,并将其名称添加到设置中:

val voices = tts.voices.filter {it.locale == Locale.SIMPLIFIED_CHINESE}
他们的名字看起来完全不可读,例如:

cmn-cn-x-ssa-local
cmn-cn-x-ccc-network
cmn-cn-x-ccd-local
有没有一种方法可以获得人类可读的声音名称?或者至少知道他们的性别


例如,包含包含引擎唯一名称的名称字段和包含人类可读名称的标签字段。也许语音也有类似的功能?

我已经用这种方式格式化了,也许可以改进,但至少外观比默认列表要好

String sal = voices.get(e).name;

            if(sal.contains("#")) {

                String[] pre = sal.split("#");
                String sec = pre[1].replace("_", " ");
                sec = sec.replace("-", " ");
                String[] sal2 = pre[0].split("-");
                sal = sal2[0] + "_" + sal2[1].toUpperCase() + " (" + utils.capitalize(sec) + ")";
            }

            if(sal.contains("-x-")) {

                String[] noSal = sal.split("-x-");
                String[] noSal2 = noSal[0].split("-");
                String noSal3 = noSal[1].replace("-", " ");
                sal  = noSal2[0] + "_" + noSal2[1].toUpperCase() + " (" + utils.capitalize(noSal3) + ")";
            }

            if(sal.contains("-")){
                String[] finalSal = sal.split("-");
                sal = finalSal[0] + "_" + finalSal[1] + " (" + utils.capitalize(finalSal[2]) + ")";
            }
utils.capitalize()这是一个将单词大写的小函数


我已经用这种方式格式化了,也许可以改进,但至少看起来比默认列表要好

String sal = voices.get(e).name;

            if(sal.contains("#")) {

                String[] pre = sal.split("#");
                String sec = pre[1].replace("_", " ");
                sec = sec.replace("-", " ");
                String[] sal2 = pre[0].split("-");
                sal = sal2[0] + "_" + sal2[1].toUpperCase() + " (" + utils.capitalize(sec) + ")";
            }

            if(sal.contains("-x-")) {

                String[] noSal = sal.split("-x-");
                String[] noSal2 = noSal[0].split("-");
                String noSal3 = noSal[1].replace("-", " ");
                sal  = noSal2[0] + "_" + noSal2[1].toUpperCase() + " (" + utils.capitalize(noSal3) + ")";
            }

            if(sal.contains("-")){
                String[] finalSal = sal.split("-");
                sal = finalSal[0] + "_" + finalSal[1] + " (" + utils.capitalize(finalSal[2]) + ")";
            }
utils.capitalize()这是一个将单词大写的小函数