百度语音合成中需要注意的两个小常识
来源:互联网 发布:星尘数据 编辑:程序博客网 时间:2024/06/16 17:12
语音合成(Text To Speech,TTS):将文本合成为语音,即声音文件。
去官网创建应用,,并下载SDK文件,解压后的压缩包中有一个官方的demo,其实按照这个demo来就行了,在这里需要注意的只有两个问题
**
1、关于assets中文件的一个读取
**
因为官方给的Eclipse版本中的,如果用Android Studio开发的话,那就要注意到这两者对于assets文件的的处理是不一样的。
百度语音识别这里PARAM_TTS_TEXT_MODEL_FILE、PARAM_TTS_SPEECH_MODEL_FILE、PARAM_TTS_LICENCE_FILE、loadEnglishModel(),这几个中都需要放入assets文件的一个路径,供它去读取,并且进行处理,但是如果直接用“file://android_asset/xxx”或者this.getClass().getResourceAsStream()都是不可取的,这里必须要先把assets中的文件放到存到本地,然后读本地存储路径,这里附一个自己已经做好的类
copyFilesFassets方法传入的两个参数是:"assets/bd_etts_speech_female.dat"、"/voicetest/bd_etts_speech_female.dat" public class CopyAssetsFile { /** * 从assets目录中复制整个文件夹内容 * @param context Context 使用CopyFiles类的Activity * @param oldPath String 原文件路径 如:/aa * @param newPath String 复制后路径 如:xx:/bb/cc */ public void copyFilesFassets(Context context,String oldPath,String newPath) { try { String fileNames[] = context.getAssets().list(oldPath);//获取assets目录下的所有文件及目录名 if (fileNames.length > 0) {//如果是目录 File file = new File(newPath); file.mkdirs();//如果文件夹不存在,则递归 for (String fileName : fileNames) { copyFilesFassets(context,oldPath + "/" + fileName,newPath+"/"+fileName); } } else {//如果是文件 File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + newPath); String path = newPath.substring(0, newPath.lastIndexOf("/")); getDirectory(path); if(!file.exists()){ file.createNewFile(); } InputStream is = context.getClass().getClassLoader().getResourceAsStream(oldPath); FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; int byteCount = 0; while((byteCount = is.read(buffer)) != -1) {//循环从输入流读取 buffer字节 fos.write(buffer, 0, byteCount);//将读取的输入流写入到输出流 } fos.flush();//刷新缓冲区 is.close(); fos.close(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); //如果捕捉到错误则通知UI线程 } } //分级建立文件夹 public void getDirectory(String path){ //对path进行处理,分层级建立文件夹 String[] s=path.split("/"); String str=Environment.getExternalStorageDirectory().getAbsolutePath(); for (int i = 0; i < s.length; i++) { str=str+"/"+s[i]; File file=new File(str); if(!file.exists()){ file.mkdir(); } } }}
**
2、libs中的文件
**
其实在官方文档也可以看到这样说的:
(1)、如与第三方库集成,至少要保留armeabi目录。如第三方库有7个架构目录,比语音识别SDK多出2个目录 mips和mips64,请将mips和mips64目录删除,剩下5个同名目录合并。
(2)、如第三方库仅有armeabi这一个目录,请将语音识别SDK的额外4个目录如armeabi-v7a删除,合并armeabi目录下的so。 即目录取交集,so文件不可随意更改所属目录。
因为在百度语音识别和合成中,需要进行两次SDK的集成,这两次中的libs中的文件只能取交集,也就是有相同的文件夹就把相同的文件夹中的内容合并为一个,如果一边有一边没有,那就把这类文件夹删除了
另,附上地址,里面包含了百度语音识别和合成整合后的demo:https://git.oschina.net/lee_vane/BaiduVoiceRecognition
- 百度语音合成中需要注意的两个小常识
- 百度语音合成的使用
- 百度的语音合成功能
- 集成百度语音合成的一些问题
- 基于百度AI的语音合成
- iOS-百度语音合成的使用
- c# 百度语音合成
- 百度语音合成
- 百度语音合成学习
- 百度语音离线合成
- 百度语音合成
- 百度离线语音合成
- 百度语音合成api
- zend_framework中需要注意的两个问题
- 经常注意的小常识
- 界面设计中需要注意的小细节
- iOS中需要注意的小细节
- 调用百度语音合成接口
- 高性能MySQL(第2版)中文版pdf
- Leetcode-House Robber-Python
- 成功之路:ORACLE11g学习笔记pdf
- 零基础学SQLpdf
- 轻松学SQL Server数据库pdf
- 百度语音合成中需要注意的两个小常识
- [轻松学编程:轻松学Oracle数据库pdf
- 数据库系统概论(第四版)pdf
- 数据库系统基础:初级篇(第5版)pdf
- [数据库系统基础:高级篇(第5版)pdf
- 数据库原理与应用.(Oracle版)pdf
- NoSQL精粹pdf
- 【Redis缓存机制】3.key的操作
- Oracle Database 9i 10g 11g编程艺术 深入数据库体系结构 第2版pdf