X

4,语音识别,从小程序云函数到自建服务器转码识别

本文记录我基于小程序云开发模式,进行小程序“口算卡”的全部历程,篇幅较长,分为以下篇章

  1. 需求概述及简单上手
  2. 小程序云函数使用(写入DB及读取DB)
  3. 小程序云函数(语音识别,从思路到实现到放弃使用云函数)
  4. 语音识别,从小程序云函数到自建服务器转码识别

折腾了小程序云函数,从实现到放弃;所以有了思路三,nodejs+socket+ffmpeg+百度SDK

必须有服务器可用来搭建 socket 服务哦

为啥选了nodejs,是因为云函数开发写了node,有些代码可以搬来直接用;

1,安装ffmpeg

centos7下FFmpeg环境部署记录
1)安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持
[root@qd-vpc-op-snapshot01 ~]# yum install -y epel-release
[root@qd-vpc-op-snapshot01 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7          //如果出现缺少Code提示,就执行此条命令。
[root@qd-vpc-op-snapshot01 ~]# yum repolist            //安装完成之后,可以查看是否安装成功
 
2)安装Nux-Dextop源
[root@qd-vpc-op-snapshot01 ~]# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro         //导入一个Code
[root@qd-vpc-op-snapshot01 ~]# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm         //安装nux-dextop 源
[root@qd-vpc-op-snapshot01 ~]# yum repolist      #查看repo源是否安装成功
 
3)安装ffmpeg
[root@qd-vpc-op-snapshot01 ~]# yum install -y ffmpeg
[root@qd-vpc-op-snapshot01 ~]# ffmpeg -version
ffmpeg version 2.6.8 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --enable-libfaac --enable-nonfree --enable-libfdk-aac --enable-nonfree --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil      54. 20.100 / 54. 20.100
libavcodec     56. 26.100 / 56. 26.100
libavformat    56. 25.101 / 56. 25.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 11.102 /  5. 11.102
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100

2,安装nodejs

yum install nodejs

3,新建一个工作目录,我这里为 /opt/lampp/htdocs/wx-talk-wss

完成环境初始化及依赖安装

mkdir /opt/lampp/htdocs/wx-talk-wss
cd /opt/lampp/htdocs/wx-talk-wss
npm init
npm install fluent-ffmpeg --save
npm install baidu-aip-sdk --save
npm install websocket --save

4,源码 https://github.com/myzingy/wx-talk-wss

5,执行 node wss.web.js  开启服务

针对 socket 优化的尝试

1,直接传递 farmeBuffer

2,ffmpeg 转码直接使用stream,需要将 buffer 转为 stream

3,语音辅助还没有上线,要达到高效率、高准确率,仅仅识别下远远达不到

4,经过不懈努力,已实现1个数字识别,可以进行辅助判断;

 

然而,然而,现实就是这么残酷,就是用了socket,也没法避免网络延时,就是1秒的延时对这个口算项目也不合适;

会造成ai判断跳到下一题,家长也点击跳到下一个,直接跳题的问题;

所以,我下架了这个功能


  1. 需求概述及简单上手
  2. 小程序云函数使用(写入DB及读取DB)
  3. 小程序云函数(语音识别,从思路到实现到放弃使用云函数)
  4. 语音识别,从小程序云函数到自建服务器转码识别
打赏
微信扫一扫,打赏作者吧~
admin :