C#后端实现文字转语音、语音转文字,语音识别技术。
文字转语音意思是前端上传一段文字时,我们可以在后台生成一段wav语音回传给前端,前端可以直接播放出来。
语音转文字是前端录制好一段语音上传上来,我们可以在后台对语音文件进行解析,生成一段文字返回给前端。
1. 文字转语音
使用到的库只有一个,Speech,跟之前一样引用管理里面搜索并安装即可。
代码较为简单,有两种选择,一种是生成文件,一种是生成数据流,两种方法都很好用,我这边使用的是生成数据流,这样不用在服务器上存文件,比较节省存储空间。
如果涉及到html文本转纯文本的,建议使用下面这个正则将字符串处理一下。
Regex.Replace(Regex.Replace(content, "<.*?>", ""), " ", "")
这个文字转语音比较强大,我试过转六千多字的长文本,速度很快只用了几秒,播放器来也没有卡顿,大小也只有几十兆,比较好用。
上线时遇到一个问题,因为我们服务器是部署在windows server上的IIS上的,上线后报了个错。不能设置语音。未安装匹配的语音,或语音被禁用。虽然能用GetInstalledVoices方法获取到已安装的语音信息,但是使用不了。这个错误的原因在于IIS上程序池的权限太低了