C# .net 接口 文字转语音 TTS 语音转文字 语音识别技术

        C#后端实现文字转语音语音转文字语音识别技术

        文字转语音意思是前端上传一段文字时,我们可以在后台生成一段wav语音回传给前端,前端可以直接播放出来。

        语音转文字是前端录制好一段语音上传上来,我们可以在后台对语音文件进行解析,生成一段文字返回给前端。

        1. 文字转语音

        使用到的库只有一个,Speech,跟之前一样引用管理里面搜索并安装即可。

        代码较为简单,有两种选择,一种是生成文件,一种是生成数据流,两种方法都很好用,我这边使用的是生成数据流,这样不用在服务器上存文件,比较节省存储空间。

如果涉及到html文本转纯文本的,建议使用下面这个正则将字符串处理一下。

Regex.Replace(Regex.Replace(content, "<.*?>", ""), "&nbsp;", "")

        这个文字转语音比较强大,我试过转六千多字的长文本,速度很快只用了几秒,播放器来也没有卡顿,大小也只有几十兆,比较好用。

        上线时遇到一个问题,因为我们服务器是部署在windows server上的IIS上的,上线后报了个错。不能设置语音。未安装匹配的语音,或语音被禁用。虽然能用GetInstalledVoices方法获取到已安装的语音信息,但是使用不了。这个错误的原因在于IIS上程序池的权限太低了,不能够访问系统语音所在的文件目录。解决办法为调高IIS程序池的标识,设置程序池标识为LocalSystem即可。

        2. 语音转文字(仅支持机器语音或自定义语意识别后转文字,自然语音基本识别不到)

        语音转文字与文字转语音用的是同一个库,Speech,不用再下载安装了,直接上代码。

        识别前要先定义好语法,接口将会识别第一个匹配到的单词并返回。

        语音转文字也有两种模式,Recognize适合短文本,RecognizeAsync适合长文本。使用Recognize可以同步获取到识别结果,但仅限于头一次识别,如果是长文本用这个来做会自动把后面信息忽略掉。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值