首页 版块 访问AI主站 注册 发帖
fujiayi1984
1671
积分 积分商城
18
获赞
android 合成按照官网demo,各种成功,就是无法发声
Ta的回复 :小杨服装店: 我使用的服务是:百度语音合成Android版 调用的接口是:语音合成相关的接口 参数设置情况:参数全部设置正常 开发平台和机型:预装Android6.0版本的安装手机及pos机 SDK版本号:最新版本 代码或日志截图(上传截图能帮助您更快解决问题): 代码中的"XXXX"是我的正确参数。 06-23 11:18:34.942 24282-24493/ywh.pos E/art: No implementation found for int com.baidu.tts.jni.EmbeddedSynthesizerEngine.bdTTSGetLicense(android.content.Context, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) (tried Java_com_baidu_tts_jni_EmbeddedSynthesizerEngine_bdTTSGetLicense and Java_com_baidu_tts_jni_EmbeddedSynthesizerEngine_bdTTSGetLicense__Landroid_content_Context_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2) private static String TAG = "BaiduVoice"; private String mSampleDirPath; private static final String SAMPLE_DIR_NAME = "baiduTTS"; private static final String SPEECH_FEMALE_MODEL_NAME = "bd_etts_speech_female.dat"; private static final String SPEECH_MALE_MODEL_NAME = "bd_etts_speech_male.dat"; private static final String TEXT_MODEL_NAME = "bd_etts_text.dat"; private static final String LICENSE_FILE_NAME = "temp_license_2017-06-22"; private static BaiduVoice instance; private static Context context; // 语音合成客户端    private SpeechSynthesizer mSpeechSynthesizer; public void speek(String text, String utteranceId){ mSpeechSynthesizer.speak(getSpeechSynthesizeBag(text,utteranceId)); } private SpeechSynthesizeBag getSpeechSynthesizeBag(String text, String utteranceId) { SpeechSynthesizeBag speechSynthesizeBag = new SpeechSynthesizeBag(); //需要合成的文本text的长度不能超过1024个GBK字节。        speechSynthesizeBag.setText(text); speechSynthesizeBag.setUtteranceId(utteranceId); return speechSynthesizeBag; } // 初始化语音合成客户端并启动    public void startTTS() { initialEnv(); // 获取语音合成对象实例        mSpeechSynthesizer = SpeechSynthesizer.getInstance(); // 设置context        mSpeechSynthesizer.setContext(context); // 设置语音合成状态监听器        mSpeechSynthesizer.setSpeechSynthesizerListener(this); // 设置在线语音合成授权,需要填入从百度语音官网申请的api_key和secret_key        mSpeechSynthesizer.setApiKey("XXXX", "XXXX"); // 设置离线语音合成授权,需要填入从百度语音官网申请的app_id        mSpeechSynthesizer.setAppId("XXXX"); // 设置语音合成文本模型文件        // 文本模型文件路径 (离线引擎使用)        this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_TEXT_MODEL_FILE, mSampleDirPath + "/"                + TEXT_MODEL_NAME); // 声学模型文件路径 (离线引擎使用)        this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_SPEECH_MODEL_FILE, mSampleDirPath + "/"                + SPEECH_FEMALE_MODEL_NAME); // 本地授权文件路径,如未设置将使用默认路径.设置临时授权文件路径,LICENCE_FILE_NAME请替换成临时授权文件的实际路径,仅在使用临时license文件时需要进行设置,如果在[应用管理]中开通了正式离线授权,不需要设置该参数,建议将该行代码删除(离线引擎)        // 如果合成结果出现临时授权文件将要到期的提示,说明使用了临时授权文件,请删除临时授权即可。 //        this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/" //                + LICENSE_FILE_NAME);        // 设置语音合成声音授权文件 //        mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, path + "temp_license_2017-06-22"); //         获取语音合成授权信息        AuthInfo authInfo = mSpeechSynthesizer.auth(TtsMode.MIX); // 判断授权信息是否正确,如果正确则初始化语音合成器并开始语音合成,如果失败则做错误处理        if (authInfo.isSuccess()) { mSpeechSynthesizer.initTts(TtsMode.MIX); int i = mSpeechSynthesizer.speak("百度语音合成示例程序正在运行"); Log.e(TAG,"" + i); } else { // 授权失败        } } private void initialEnv() { if (mSampleDirPath == null) { String sdcardPath = Environment.getExternalStorageDirectory().toString(); mSampleDirPath = sdcardPath + "/" + SAMPLE_DIR_NAME; } makeDir(mSampleDirPath); copyFromAssetsToSdcard(false, SPEECH_FEMALE_MODEL_NAME, mSampleDirPath + "/" + SPEECH_FEMALE_MODEL_NAME); copyFromAssetsToSdcard(false, SPEECH_MALE_MODEL_NAME, mSampleDirPath + "/" + SPEECH_MALE_MODEL_NAME); copyFromAssetsToSdcard(false, TEXT_MODEL_NAME, mSampleDirPath + "/" + TEXT_MODEL_NAME); copyFromAssetsToSdcard(false, LICENSE_FILE_NAME, mSampleDirPath + "/" + LICENSE_FILE_NAME); } private void makeDir(String dirPath) { File file = new File(dirPath); if (!file.exists()) { file.mkdirs(); } } /**     * 将sample工程需要的资源文件拷贝到SD卡中使用(授权文件为临时授权文件,请注册正式授权)     *     * @param isCover 是否覆盖已存在的目标文件     * @param source     * @param dest     */    private void copyFromAssetsToSdcard(boolean isCover, String source, String dest) { File file = new File(dest); if (isCover || (!isCover && !file.exists())) { InputStream is = null; FileOutputStream fos = null; try { is = context.getResources().getAssets().open("data/" + source); String path = dest; fos = new FileOutputStream(path); byte[] buffer = new byte[1024]; int size = 0; while ((size = is.read(buffer, 0, 1024)) >= 0) { fos.write(buffer, 0, size); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } try { if (is != null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } } } } @Override    public void onSynthesizeStart(String s) { Log.i(TAG,"onSynthesizeStart " + s); } @Override    public void onSynthesizeDataArrived(String s, byte[] bytes, int i) { Log.i(TAG,"onSynthesizeDataArrived " + s); } @Override    public void onSynthesizeFinish(String s) { Log.i(TAG,"onSynthesizeFinish " + s); } @Override    public void onSpeechStart(String s) { Log.i(TAG,"onSpeechStart " + s); } @Override    public void onSpeechProgressChanged(String s, int i) { Log.i(TAG,"onSpeechProgressChanged " + s); } @Override    public void onSpeechFinish(String s) { Log.i(TAG,"onSpeechFinish " + s); } @Override    public void onError(String s, SpeechError speechError) { Log.i(TAG,"onError " + s + " speechError " + speechError); } 复现步骤、现象及其他描述:授权成功,调用没有报错,就是无法发声。查找问题发现的日志中的错误。 回复小杨服装店:请您测试下我们的demo是否有此问题,先测联网功能,谢谢
4
混淆后无法播放语音
Ta的回复 :Chasel_Lee_Sky: 我使用的服务是:语音合成 调用的接口是:SpeechSynthesizer.speak() 参数设置情况:设置成功 开发平台和机型:三星s6 SDK版本号:2.3.0 代码或日志截图(上传截图能帮助您更快解决问题): 复现步骤、现象及其他描述:不混淆可以正常播放,混淆后无法播放,在proguard-rule文件中已经加入忽略语音库和涉及到使用语音库的类 回复Chasel_Lee_Sky: 请您检查下混淆规则,或者这里贴一下和语音相关的部分
1
有没有完全离线版的语音合成服务
Ta的回复 :55JJY: 回复xie_yongkang:可以购买,有相应服务吗? 回复55JJY:您可以在这个页面底部点“合作咨询”
5
百度语音 语音合成api调用返回值 模型
Ta的回复 :啦啦活: 回复xie_yongkang: 你好,为什么我现在无论发什么数据给语音合成接口 她返回给我的数据 都是 ??,我调用时查看接口的次数统计,每调用一次,总次数都会增加一次,这说明我应该是成功的调用了这个接口?那给我返回?? 是没识别出来么 回复啦啦活:您可以打印出url,用浏览器访问这个url试下
8
send方法启动唤醒的时候程序崩溃,提示为定义的异常
Ta的回复 :wx940624862: 我在语音合成的结束回调里调用开始识别的方法可以吗,为什么没有用呢 回复wx940624862: 在QQ群中已经回答您,识别start需要在一个长久的线程中调用(比如ui线程),
3
接入机器人中 想要实现唤醒 -> 提问 -> 回答 -> 提问 -> 回答... 这样的效果
Ta的回复 :月飘留霜: 回复fujiayi1984: 百度语音可以语音对话功能吗,比如   提问:今天天气怎么样 回答:今天气温33度,微风3级  提问:中午吃什么 回答:吃了面条 这种的对话可以实现吗 回复月飘留霜: 您贴出的这两条可以的。您可以设置自定义问答集。http://yuyin.baidu.com/docs/asr/63
3
原帖已删除
Ta的回复 :语音电子书: 这几天正常了。(App 没修改) 回复语音电子书:有问题欢迎反馈。
0
首次播放语音会先说一句百度语音试用服务88天后到期
Ta的回复 :deathghost2011: 回复fujiayi1984:感谢是因为一直没网络没有第一次授权问题 回复deathghost2011:感谢您的支持,有问题欢迎留言
3
语音识别返回错误:没有匹配的识别结果7
Ta的回复 :ch...n@hotmail.com: 我把 armeabi 文件夹里的文件复制到 armeabi-v7a 就没问题了,我用的android TV。 回复ch...n@hotmail.com:感谢您的分享
9
android 合成按照官网demo,各种成功,就是无法发声
Ta的回复 :小杨服装店: 问题已经解决,解决方案很简单,是.so文件链接的问题    sourceSets {                main {            jniLibs.srcDirs = ['libs']        }    } 最初使用的时候这种方案,但实际这种方案链接不到。 后改成了下面的方案: task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") { destinationDir file("$projectDir/libs") baseName "Native_Libs2"    extension "jar"    from fileTree(dir: "libs", include: "**/*.so") into "lib" } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar) } 这种方案正常。 开发工具为Android stutio 2.3.2 回复小杨服装店: 感谢您的分享
4
百度语音 语音合成api调用返回值 模型
Ta的回复 :啦啦活: 你好,我现在能成功调用百度语音识别接口了,但是给我返回的字符是乱码 {"corpus_no":"6436584423168149870","err_msg":"success.","err_no":0,"result":["鎮ㄥソ锛?],"sn":"549465418401498634094"} 这是为啥呢 回复啦啦活:ctp参数固定值为1即可。另外我们返回的字符统一都是utf8编码的。
8
有没有完全离线版的语音合成服务
Ta的回复 :55JJY: 回复fujiayi1984:好的,谢谢 回复55JJY:欢迎使用百度语音。
5
原帖已删除
Ta的回复 :136*****782: 同求   这个9音量在iphone7上太小了  听不清楚 回复136*****782:这个会帮你反馈下
0
你们的语音唤醒评估有问题
Ta的回复 :heavenssssnnnn: [图片] 回复heavenssssnnnn:您好,目前该问题已经解决
2
唤醒词评估用不了
Ta的回复 :501326801: 唤醒词评估用不了了,一直提示,请重新提交 回复501326801: 您好,官网唤醒词下载功能已经修复
3
返回数据问题
Ta的回复 :阳光的和哈和哈: 为什么返回的数据格式和文档上的不一致, 这个是文档上的数据描述: [图片] 这个是demo返回的数据: 1."json_res": "{\"parsed_text\":\"劳动 节 到 国庆 节 有 多少 天\",\"raw_text\":\"劳动节到国庆节有多少天\",\"results\":[{\"domain\":\"calendar\",\"intent\":\"count_day\",\"object\":{\"ANSWER\":\"国庆节(10月1日)到劳动节(2018年5月1日)是213天\",\"_date_begin\":\"劳动节\",\"_date_end\":\"国庆节\",\"date_begin\":\"2018-05-01,2018-05-01\",\"date_end\":\"2017-10-01,2017-10-01\"},\"score\":0.650}]}\n" 2."json_res": "{\"parsed_text\":\"5 月 20 号 是 劳动 节 嘛\",\"raw_text\":\"5月20号是劳动节嘛\",\"results\":[{\"domain\":\"calendar\",\"intent\":\"is_date\",\"object\":{\"ANSWER\":\"不是,5月20号是2018年5月20日,而劳动节是2018年5月1日\",\"_date\":\"5月20号\",\"_is_date\":\"劳动节\",\"date\":\"2018-05-20,2018-05-20\",\"is_date\":\"2018-05-01,2018-05-01\"},\"score\":0.950}]}\n", 3."json_res": "{\"parsed_text\":\"5 月 20 号 是 什么 星座\",\"raw_text\":\"5月20号是什么星座\",\"results\":[{\"domain\":\"calendar\",\"intent\":\"constellation\",\"object\":{\"ANSWER\":\"2018年5月20日生日是金牛座\",\"_date\":\"5月20号\",\"date\":\"2018-05-20,2018-05-20\"},\"score\":0.950}]}\n",                                                                                                                                                              回复阳光的和哈和哈:您的截图中有什么报错么?
3
error 1 连接超时 从昨天下午开始识别功能一直出现
Ta的回复 :android_zjh: 我使用的服务是:语音识别 调用的接口是: r返回错误的接口 public void onError(int error) { 参数设置情况: intent.putExtra(Constant.EXTRA_SAMPLE, 16000); //language设置语种 cmn-Hans-CN   中文普通话 sichuan-Hans-CN   中文四川话(离线暂不支持)yue-Hans-CN     粤语(离线暂不支持)en-GB    英语(离线暂不支持) intent.putExtra(Constant.EXTRA_LANGUAGE, "cmn-Hans-CN"); //语义解析设置 disable   禁用语义解析 enable 开启语义解析默   可设置为不开启 intent.putExtra(Constant.EXTRA_NLU, "disable"); //语音活动检测 search 搜索模式,适合短句输入 input 输入模式,适合短信、微博内容等长句输入 intent.putExtra(Constant.EXTRA_VAD, "input"); //设置在垂直的领域20000输入10005热词10060     地图10001音乐10002视频10003应用10004网页10006购物 //10007健康10008电话10052医疗10053汽车 10054娱乐餐饮 10055财经 10056游戏 10057菜谱 10058助手 // 100014联系人 100016手机设置 100018电视指令 100019播放器指令 100020收音机指令 100021命令词 intent.putExtra(Constant.EXTRA_PROP, 20000); 开发平台和机型:android 和ios均出现 SDK版本号:最新 代码或日志截图(上传截图能帮助您更快解决问题): 复现步骤、现象及其他描述:之前使用没有问题,昨天下午 2017年6月26 7.00之后 语音识别 返回error 1 sb.append("连接超时"); 链接超时 回复android_zjh:您好,目前服务已经恢复,请您再测试下
3
如何让用户的语音与已有的音频文件进行比较?
Ta的回复 :椰树椰汁啊: 要比较用户说的语音与已有的音频文件的相似度,是比较说话的内容。该如何实现? 回复椰树椰汁啊:语音官网主要功能是文字和语音的互转,暂时没有您要的功能
1
申请离线语音合成的入口在哪
Ta的回复 :柳树CBD: 申请离线语音合成的入口在哪?应用管理中找不到,只有“数据统计”、“申请提高配额”、“离线资源下载”三项 回复柳树CBD:您好,离线合成正式授权是自动的。 正式授权 要点: 1.    语音官网中应用请确定绑定包名,demo的包名是com.baidu.tts.sample 2.    删除代码中临时授权文件LICENSE_FILE_NAME的设置。 3.    启动后检查离线资源文件是否存在并且可读
1
个别机型语音合成一直返回 -111怎么回事
Ta的回复 :shijia109: 有用户反馈语音合成无法使用,一直返回-111错误,让他联网再试也不行,牌子是杂牌,OWWO Q8,系统5.1,是不是兼容问题呢? 回复shijia109:您能否根据我们的demo测试下?
1
切换版块
智能客服