集成百度语音合成——把文字给以语音方式播放

此文用来记录自己的集成过程(只是一个简单的demo)参考官方文档:百度官方文档

步骤

  1. 下载官方demo
  2. 注册百度开发者,在控制台里创建自己的项目,按照要求,填写项目包名即可。
  3. 把lib包放入自己的工程中,
  4. 把jniLibs放入自己的项目中,
  5. 把assets里的文件放入自己的项目中。
  6. 然后再activity里设置有关语音的属性。appkey等。核心代码如下所示,其余的代码是新建工程自动生成的。可根据个人需要参考。
 private void initBtts() {
        // 获取语音合成对象实例
        mSpeechSynthesizer = SpeechSynthesizer.getInstance();
        // 设置context
        mSpeechSynthesizer.setContext(this);
        //mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI);
        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_HIGH_SPEED_NETWORK/*wifi,4G,3G使用在线合成,其他使用离线合成*/);
        mSpeechSynthesizer.setApiKey("自己的apikey", "自己的Secret Key");
        // 设置离线语音合成授权,需要填入从百度语音官网申请的app_id
        mSpeechSynthesizer.setAppId("自己的appid");// 20171127 MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI 改成 MIX_MODE_HIGH_SPEED_NETWORK
        // 设置语音合成文本模型文件
        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, "bd_etts_text.dat");
        // 设置语音合成声音模型文件
        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, "bd_etts_speech_female.dat");
        // 设置语音合成声音授权文件
        //  会自动从网上下载 mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, "your_licence_path");
        // 获取语音合成授权信息
        AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX);
        // 判断授权信息是否正确,如果正确则初始化语音合成器并开始语音合成,如果失败则做错误处理
        if (authInfo.isSuccess()) {
            mSpeechSynthesizer.initTts(TtsMode.MIX);
            mSpeechSynthesizer.speak("欢迎光临!");
        } else {
            // 授权失败
            Log.e("lys", "Baidu TTS AuthInfo error" + authInfo.getTtsError().getDetailMessage());
        }
    }

遇到的问题

  • 把key相关信息配置到mainfest里边显示授权错误200,参考官方demo,把key相关信息配置到代码中。
  • 别忘了需要assets的文件。
  • 出现错误清对照错误代码表,然后再社区里搜索问题,进行解决。

你可能感兴趣的:(Android)