欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:501

微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老

发布时间:2020-12-23  
重要事项

目前本文中提到的API已支持微信小程序录音文件格式:silk v3、mp3。
注:微信小程序开发工具上的录音不论是新接口还是老接口,都是webm/base64格式,虽然后辍名是silk(或mp3),但不是真正的silk v3(或mp3)格式的,打开看头部是 data:audio/webm;base64, 开头的。
为了便于调试,2017年9月份时我补逻辑给支持上了,但是:我在2017年11月份发现原有的webm/base格式又不支持了。
api服务器端代码没有动过,跟踪查过,目前仅发现在2017年10月份之前用微信小程序开发工具录的文件,还是可以支持的,在10月份之后的文件,就不支持了,具体什么原因只能问老马家的人了。
结论是:调用我本文中提到的两个接口,只能用真机做测试,不能用电脑录音来测试语音识别了。

重要事项
想要用我这个API,务必先去cn.olami.ai申请appKey和appSecret,然后将appKey告知我,我加进支持列表方可调用,二者缺一不可。文末有将有调用此文提到的API服务的案例以及源码分享文章链接。

调用案例:“遥知之”智能小秘,欢迎扫码体验:

小程序码小

为什么做?

前不久刚发布了一个智能生活信息查询的小助手“遥知之”,可惜只能手动输入来玩,这一点体验很不好,因为微信小程序录音是silk格式的,现在主要的语音识别接口都不支持。

在网上搜了下相应的功能,也只有php做的开源代码实现的silk转wav的服务器代码,首先我不熟悉PHP,其次也不知道后期有没有维护,干脆自己做一个tomcat + java版的,权当学习娱乐一下。

怎么做? 准备环境

先需要有一个支持https的服务器,我目前用的服务器是阿里云秒杀的免费最低配置的服务器,预装的ubuntu16.04 LTS版,然后自己捣鼓一下,配置上了https,具体是用 nginx + let's encrypt + tomcat来提供的https的API。这里不详细介绍,感兴趣的自己研究下。

需要一个silk解码器,网上有一牛在2015年年初曾经发贴讨论过这个话题:silk v3 编码的音频怎么转换成 wav 或 mp3 之类的?

而且此牛后面有持续研究,提供了开源的silk_v3_decoder项目,具体见:kn007大牛的silk_v3_decoder

对了,开源项目是github上的,服务器上装个git,这不用额外再说明了吧。

搭建服务步骤 下载silk-v3-decoder

基本就是在服务器上找个目录,把大牛kn007的项目下载下来。

root@alijod:/home/jod/wechat_app# mkdir download root@alijod:/home/jod/wechat_app# cd download/ root@alijod:/home/jod/wechat_app/download# git clone https://github.com/kn007/silk-v3-decoder.git Cloning into 'silk-v3-decoder'... remote: Counting objects: 634, done. remote: Total 634 (delta 0), reused 0 (delta 0), pack-reused 634 Receiving objects: 100% (634/634), 72.79 MiB | 9.50 MiB/s, done. Resolving deltas: 100% (352/352), done. Checking connectivity... done. root@alijod:/home/jod/wechat_app/download# ll total 12 drwxr-xr-x 3 root root 4096 Sep 18 10:11 ./ drwxr-xr-x 7 root root 4096 Sep 18 10:11 ../ drwxr-xr-x 5 root root 4096 Sep 18 10:11 silk-v3-decoder/ root@alijod:/home/jod/wechat_app/download# ls silk-v3-decoder/ converter_beta.sh converter.sh LICENSE README.md silk windows

看上述目录,其实只用到了silk这个目录,和converter.sh这个脚本。silk目录中的C代码需要gcc编译,converter.sh脚本需要修改一下,后续都会提。

编译silk_v3_decoder

根据https://github.com/kn007/silk-v3-decoder上的README,用上这个工具,需要gcc和ffmpeg,gcc是在编译silk时执行make时用到的(普及一下小白),ffmpeg其实是脚本里要用的,与编译无关。事实是,ffmpeg在整个服务搭建过程确实不是必备的,后文将有针对这个额外说明,只是本人偷懒,暂时不想再深入研究了。

gcc的环境,如果没有安装,自己网搜吧,这里不扯了,直接进入正题:

root@alijod:/home/jod/wechat_app/download# cd silk-v3-decoder/silk/ root@alijod:/home/jod/wechat_app/download/silk-v3-decoder/silk# ll total 32 drwxr-xr-x 5 root root 4096 Sep 18 10:11 ./ drwxr-xr-x 5 root root 4096 Sep 18 10:11 ../ drwxr-xr-x 2 root root 4096 Sep 18 10:11 interface/ -rw-r--r-- 1 root root 3278 Sep 18 10:11 Makefile drwxr-xr-x 2 root root 12288 Sep 18 10:11 src/ drwxr-xr-x 2 root root 4096 Sep 18 10:11 test/ root@alijod:/home/jod/wechat_app/download/silk-v3-decoder/silk# make ………… …………(这里是一大段编译过程日志) ………… a - src/SKP_Silk_scale_vector.o gcc -c -Wall -enable-threads -O3 -Iinterface -Isrc -Itest -o test/Decoder.o test/Decoder.c test/Decoder.c: In function ‘main’: test/Decoder.c:187:9: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(header_buf, sizeof(char), 1, bitInFile); ^ g++ -L./ test/Decoder.o -lSKP_SILK_SDK -o decoder root@alijod:/home/jod/wechat_app/download/silk-v3-decoder/silk# ls decoder interface libSKP_SILK_SDK.a Makefile src test root@alijod:/home/jod/wechat_app/download/silk-v3-decoder/silk#