微信小程序 java服务端记(附部署过程)
来源:互联网 发布:在线网络理财投资服务 编辑:程序博客网 时间:2024/05/21 22:25
1、文件上传,使用springmvc一直不想,后来看到别人有一样的情况改成了serverlet就可以了
2、因为要进行语音识别成文字,上传的语音文件是silk格式,需要用到讯飞的语音识别所以必须转成wav,用到了kn007大神的这个工具https://github.com/kn007/silk-v3-decoder才搞定过程比较坎坷
3、还想把返回结果转换成语音文件给小程序进行播放,结果...........silk是有了,但是一直播放不了,因为小程序的silk似乎需要特定的参数格式才行,最后转了个war给前端,让它播放
4、期间使用ffmpeg进行各种格式转换,ffmpeg的参数设置也挺恶心的,下面留一个可用的例子
public static void convertAudio(String sourcePath,int sourceHZ,String targetPath,int targetHZ){Properties props=System.getProperties(); //获得系统属性集 String osName = props.getProperty("os.name"); //操作系统名称String command = null;if(osName.contains("Windows")){//ffmpeg -y -f s16le -ar 24000 -ac 1 -i "$1.pcm" -f wav -ar 16000 -b:a 16 -ac 1 "${1%.*}.$2"command = "C:\\ffmpeg.exe -y -f s16le -ar "+sourceHZ+" -i "+sourcePath+" -f wav -ar "+targetHZ+" -b:a 8 -ac 1 "+targetPath;}else{command = "/usr/local/ffmpeg/bin/ffmpeg -y -f s16le -ar "+sourceHZ+" -ac 1 -i "+sourcePath+" -f wav -ar "+targetHZ+" -b:a 8 -ac 1 "+targetPath;}System.out.println("格式转换:"+command);ShellExec.execShell(command);}public static void pcmToSilk(String pcmPath,String silkPath) throws InterruptedException{//首先 pcm转换成8000的wav,然后wav转成silk//ShellExec.convertAudio(pcmPath, 16000, pcmPath+".wav", 16000);//Thread.sleep(1000);//ShellExec.convertAudio(pcmPath+".wav", 16000, silkPath, 8000);ShellExec.convertAudio(pcmPath, 16000, silkPath, 8000);}public static void pcmToWav(String pcmPath,String wavPath){Properties props=System.getProperties(); //获得系统属性集 String osName = props.getProperty("os.name"); //操作系统名称String command = null;if(osName.contains("Windows")){command = "C:\\ffmpeg.exe -f s16le -ar 16000 -i "+pcmPath+" -f wav -ar 16000 -b:a 8 -ac 1 "+wavPath;}else{command = "/usr/local/ffmpeg/bin/ffmpeg -f s16le -ar 16000 -i "+pcmPath+" -f wav -ar 16000 -b:a 16 -ac 1 "+wavPath;}System.out.println("格式转换:"+command);ShellExec.execShell(command);}public static void silkToWav(String silkPath,String wavPath){Properties props=System.getProperties(); //获得系统属性集 String osName = props.getProperty("os.name"); //操作系统名称String command = null;if(osName.contains("Windows")){//ffmpeg -y -f s16le -ar 24000 -ac 1 -i "$1.pcm" -f wav -ar 16000 -b:a 16 -ac 1 "${1%.*}.$2"command = "C:\\ffmpeg.exe -y -f s16le -ar 8000 -ac 1 -i "+silkPath+" -f wav -ar 16000 -b:a 16 -ac 1 "+wavPath;}else{command = "/usr/local/ffmpeg/bin/ffmpeg -y -f s16le -ar 8000 -ac 1 -i "+silkPath+" -f wav -ar 16000 -b:a 16 -ac 1 "+wavPath;}System.out.println("格式转换:"+command);ShellExec.execShell(command);}
由于服务器迁移,所有需要重新部署,需要部署的东西有:
jdk、jdk环境变量、tomcat、ffmpeg、ffmpeg环境变量、silk-v3-decoder-master
安装ffmpeg:http://blog.csdn.net/wh8_2011/article/details/50666745
环境变量:
#JAVA
JAVA_HOME=/usr/local/jdk1.7.0_79
JRE_HOME=/usr/local/jdk1.7.0_79/jre
JAVA_BIN=/usr/local/jdk1.7.0_79/bin
PATH=$PATH:$JAVA_BIN
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
#FFMPEG
FFMPEG=/usr/local/ffmpeg/bin/
PATH=$PATH:$FFMPEG
- 微信小程序 java服务端记(附部署过程)
- java服务端程序部署服务器以及压力测试过程
- 详解基于java的Socket聊天程序——服务端(附demo)
- 微信小程序支付(Java服务端)
- Java服务端程序简化
- JAVA实现Web服务端程序
- java的jdbc连接过程(附源代码)
- Weblogic 部署程序艰难过程
- 一个消息提示托盘程序的开发历程(采用socket技术,附源代码)二---服务端源代码
- 微信小程序开发之图片上传+Java服务端接收
- java聊天程序(包含服务端和客户端)
- 手动部署C#存储过程(CLR程序集)
- Weblogic 部署程序艰难过程(高手请进)
- 阿里云部署java环境(附:自动化部署脚本)
- 【转】Java中的反射机制(附实例程序)
- Java中的反射机制(附实例程序)
- Java —— 学生成绩分析程序(附源代码)
- 部署java程序
- 使用redis中遇到的问题记录
- UVa1587--Box--盒子(代码超简洁)
- LINUX设备驱动模型之PLATFORM(平台)总线详解
- ORA-00922: 选项缺失或无效
- 2017.7.17
- 微信小程序 java服务端记(附部署过程)
- python 报错 ImportError: No module named model_selection 的解决办法
- Java学习之Iterator(迭代器)的一般用法 (转)
- BZOJ 1191 [HNOI2006]超级英雄Hero 二分图匹配
- MySQL数据库的一些操作,修改设置密码等
- 从头学习linux C 冒泡法排序
- mysql右连接,判断大小
- cassandra关于集合类型的操作
- Jsp和Servlet的小记