开发者社区> 问答> 正文

在语音进行过程中突出显示文本

我正在开发一个我的textview由String和两个按钮组成的应用程序。当我单击“语音”按钮时,文本将转换为语音。但是我想在演讲进行时突出显示这个词。

请检查以下链接上的“我的应用”屏幕截图。[1]:https://i.stack.imgur.com/ODB4v.jpg ...

textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {

        @Override
        public void onInit(int status) {

            if (status == TextToSpeech.SUCCESS) {
                result = textToSpeech.setLanguage(Locale.ENGLISH);
                textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
                    @Override
                    public void onStart(String utteranceId) {
                        Log.d(utteranceId, "TTS start");}

                    @Override
                    public void onDone(String utteranceId) {
                        Log.d(utteranceId, "TTS done");}

                    @Override
                    public void onError(String utteranceId) {
             });
            } else {
                Toast.makeText(getApplicationContext(), "Feature is not Available", Toast.LENGTH_SHORT).show();
            }
        }
    });

这是我的文本到语音的初始化。

private void speak() {
 if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
        Toast.makeText(getApplicationContext(), "Feature is not Available", Toast.LENGTH_SHORT).show();
    } else {
        textToSpeech.setPitch(1f);
        textToSpeech.setSpeechRate(0.8f);
        HashMap<String, String> params = new HashMap<>();
        params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "utteranceId");
        textToSpeech.speak(getString(R.string.storytxt), TextToSpeech.QUEUE_FLUSH, params);

    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (textToSpeech != null) {
        textToSpeech.shutdown();
    }
}

直到这里我都没问题。现在,我要突出显示文本。我不知道该怎么做。我到处搜寻,仍然没有任何线索。

我将字符串存储在String.xml中。

展开
收起
垚tutu 2019-12-26 21:20:28 1173 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
复杂声学环境下的语音交互:技术与实践 立即下载
数据智能时代,语音交互将是第一爆发领域 立即下载
营销设计场景下的图像和文字生成 立即下载