本文记录我基于小程序云开发模式,进行小程序“口算卡”的全部历程,篇幅较长,分为以下篇章
- 需求概述及简单上手
- 小程序云函数使用(写入DB及读取DB)
- 小程序云函数(语音识别,从思路到实现到放弃使用云函数)
- 语音识别,从小程序云函数到自建服务器转码识别
折腾了小程序云函数,从实现到放弃;所以有了思路三,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判断跳到下一题,家长也点击跳到下一个,直接跳题的问题;
所以,我下架了这个功能
- 需求概述及简单上手
- 小程序云函数使用(写入DB及读取DB)
- 小程序云函数(语音识别,从思路到实现到放弃使用云函数)
- 语音识别,从小程序云函数到自建服务器转码识别
打赏
微信扫一扫,打赏作者吧~