【问题标题】:how to check TTS already support by device android?如何检查设备android已经支持的TTS?
【发布时间】:2023-03-26 15:50:01
【问题描述】:

我正在使用 TTS 引擎在 Android 中设计一个应用程序。
作为第一次,我尝试将文本发送到谷歌,然后通过互联网从谷歌接收音频,并且运行良好。

下一步是离线播放 TTS 音频。
这意味着我有一些文本,我的应用程序将从系统获取音频,而无需连接到互联网。

我已经实现了这个: Voice Recognition and Text to Speech

但我的问题是TextToSpeech.LANG_MISSING_DATA:如果没有互联网,这是行不通的。
如果互联网不可用,则无法正常工作。

请帮帮我。

【问题讨论】:

    标签: android text-to-speech


    【解决方案1】:

    Text to speech(TTS)-Android查看 Sifat Ifty 的实现 特别是代码块:

    tts=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {
    
            @Override
            public void onInit(int status) {
                // TODO Auto-generated method stub
                if(status == TextToSpeech.SUCCESS){
                    int result=tts.setLanguage(Locale.US);
                    if(result==TextToSpeech.LANG_MISSING_DATA ||
                            result==TextToSpeech.LANG_NOT_SUPPORTED){
                        Log.e("error", "This Language is not supported");
                    }
                    else{
                        ConvertTextToSpeech();
                    }
                }
                else
                    Log.e("error", "Initilization Failed!");
            }
        });
    

    如果可用,此 TextToSpeech.OnInitListener 会尝试初始化 tts 服务。完成后记得停止 tts 服务!

    【讨论】:

    • 谢谢,但我对“结果”有疑问。当互联网不可用时结果 =TextToSpeech.LANG_MISSING_DATA 但结果 =TextToSpeech.LANG_AVAILABLE 互联网可用。为什么 ? (我在“Google TTS 语音数据”中检查了 Locale.US 的语音数据 TTS 并没有安装)
    • 因为当设备连接到互联网时,互联网用于在 TTS 离线不可用的情况下提供 TTS。要使其离线工作,您需要在“设置”中下载 TTS 语音数据。
    • 即使您删除语音数据,setLanguage 的结果也始终为 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多