@忽神忽神 我就说个我想要的功能吧:语音识别转文字。
我先说一下我的设想吧:我做的小游戏(之前想做微信小游戏,现在准备独立apk的游戏,两者不冲突,仅仅只是可接sdk的方式不同)需要玩家点击录音按钮录一段语音(假设保存为rolevoice,格式不管),然后玩家可以点击播放按钮播放出来,也可以点击上传按钮上传语音(比如说百度语音识别)并显示返回的识别结果。
我之前也是百度了很久,找了百度语音 讯飞 腾讯语音 微信sdk等 发现(用于微信小游戏)都不是很理想,所以才决定转独立apk开发,微信小游戏仅仅是做个引流的测试demo即可。
我现在遇到的难题之一就是 录不了音,网上的教程基本上都是基于微信小程序利用jssdk开发的录音功能,但是无法在小游戏里面达成的。看教程的时候,有个人说可以直接下载jssdk的文件放在自己的项目里面引入,就可以同小程序一样使用了,但是不知道为什么,就是录音录不了,具体表现为点击播放按钮没有声音(音量问题可以排除),我觉得是要么一开始就没有录音(即不存在录音文件),二是录音文件播放错误(id错误或者录音参数错误导致的无音量)。
之前自己也做过录音的demo用来测试,也出现过播放时没声音,解决办法是录音时手机音量调整为最大,播放时的实际音量变小了很多,所以以同样的音量录制的录音文件在播放时就听不到声音(听筒播放的,不能外扩播放),这个我记得应该是硬件bug,是无法在软件层面修复的,不过好在不影响实际使用,因为播放的需求相对较少。
至于上传语音可以创建流达成,相对而言利用百度语音识别就能得到文字。但是不知道为什么录音就是很难做到,ccc本身也没有此类接口。那个jweixin-1.4.0.js文件即jssdk,也不是很明白究竟怎么接入到硬件的。感觉作为独立apk,怎么都应该需要跟AndroidManifest.xml这个东西打交道的吧,还是我没找到完整的教程的缘故?
难题之二其实应该算优化问题:我现在的demo是在服务端使用百度给的测试录音样本文件已经能做到上传给百度服务器识别并返回结果了。我猜测如果采用自己录音的文件可能会有编码和格式的问题(至少网上教程里面都提到这一点),不过应该是比较容易解决的。而问题是 能否直接在玩家手机上面直接上传给百度服务器(直接的demo是需要在本地安装依赖的,那么就只能以玩家收集录音上传给游戏服务器端,游戏服务器再上传给百度服务器并解析返回的结果,再把结果发回给玩家手机显示,浪费服务器性能和带宽啊)。
不成熟的想法烦请前辈指教,如果可以辛苦一下给个本地录音的工程源码最好了。我可以学习一下究竟是哪里做错了。