随着互联网时代的进步,智能产品逐渐配备了更加多元化的功能应用、更加丰富的内容资源,用户在使用语音相关的功能时,越来越多的需求需要向智能产品用户提供更便捷的操作体验,语音转换成文本,语音识别是人工智能领域极为重要的前沿技术,实现快速、高效、准确的语音识别及控制,实现智能行业内全新的便捷操作模式。
人类的体力是有极限的,尤其是在高强度压力下,工作时间越长出错概率越大,而机器则能自始至终保持同一水平,人工智能的并发能力也非人工所能及,通过基于云计算的语音识别技术,它可以将语音信号转换为文本内容,再搭配人工智能AI的稳定性和并发计算能力是其优势,尤其是在发现错别字后,机器可以瞬间修改所有错误,人工速记则需要在演讲人短暂间歇的时刻返回修改,明显表现得慌乱。
腾讯云语音产品是一种通过使用语音云识别,开发者可以将语音输入转化为可供计算机处理的文本数据,从而实现语音交互、语音搜索、语音指令等功能。
腾讯云语音产品基于业界领先的语音识别(ASR)和语音合成(TTS)技术,为各行业提供从标准化到定制化全方位智能语音服务,更以卓越的性能与极具竞争力的价格赢得了市场的广泛认可。广泛应用于录音质检、会议转写、语音输入法、智能客服、有声阅读、新闻播报、数智人、电商直播、短视频制作等行业场景。
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务,被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
“腾讯云语音识别”作为一种先进的语音识别技术,具有广泛的应用场景,以下是对其可能的应用场景的详细列举和描述:
综上所述,腾讯云语音识别技术在多个领域都具有广泛的应用潜力,能够显著提升各行业的智能化水平和用户体验。
腾讯云语音识别是一项基于云计算的语音识别服务,可以将语音转换为文本。它可以广泛应用于语音输入、语音搜索、语音助手、智能客服等领域。腾讯云语音识别具有高准确率、低延迟、支持多种语言等特点。
“腾讯云语音识别”产品作为业界领先的语音识别服务,拥有多项明显优势。以下是对其优势的详细列举和阐述:
综上所述,“腾讯云语音识别”产品以其高准确率、广泛场景适配、实时响应、灵活定制、强大抗噪、多语种支持以及易用的API接口等优势,为众多行业和场景提供了高效、便捷的语音识别解决方案。
腾讯云语音识别(Tencent Cloud Speech Recognition)是腾讯云提供的一项语音转文字服务,它能够将语音信号转换成文本内容,要使用腾讯云语音识别服务,通常需要完成以下几个步骤:
在使用之前可以先查看一下资源包,如果首次开通的话,会有一些免费资源包,用完时将自动转入后付费,扣费的顺序为“免费资源包 >> 付费资源包 >> 后付费”,可以先用赠送的免费额度进行测试。
腾讯云为API服务提供了一套API密钥验证机制,API密钥由腾讯云颁发给云主机的所有者,它由 APPID、SecretId 和 SecretKey 组成,API 密钥是构建腾讯云 API 请求的重要凭证,使用腾讯云 API 可以操作所有腾讯云资源,为了服务安全,请妥善保存和定期更换密钥。
在“语音识别概览”中,可以点击“创建密钥”,即可进入API密钥管理界面:
在“API密钥管理”中,可以看到API密钥的列表,API密钥由APPID、SecretId及SecretKey组成,如果该列表为空,请点击“新建密钥”创建一个,可以点击“新建密钥”进行生成API/SDK调用所需的签名APPID、SecretId与SecretKey信息,需要保存一下,因为我之前创建过了,也忘记了,无奈只能再重新生成一个。
温馨提示:一旦发现API密钥可能被泄露,并由此可能会产生信息安全问题,强烈建议禁用此API密钥,只需登录腾讯云在云API密钥列表中,将其禁用即可。
腾讯云语音SDK为开发者提供了访问腾讯云语音识别、语音合成等语音服务的配套开发工具,简化腾讯云语音服务的接入流程。
可以看到官方提供了 “客户端”、“小程序”、“前端”、“服务端”的多个类型的SDK,其中,为了快速了解,推荐直接使用“前端的SDK”直接先小试牛刀一下,快速尝鲜一下。
在服务方式上,腾讯云语音提供简单易用的API或SDK,使得应用产品能够通过API直接调用公有云服务,计算和存储的压力都放在云端进行。降低了应用产品开发的成本,这样,具体应用开发者就能够更多的专注于业务需求的开发,而不是纠结于语音识别的方法和准确率上。
使用的前端JS的SDK,主要是通过使用JavaScript的MediaDevices接口实现浏览器调用麦克风录音的功能,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。
将SDK代码下载下来,通过安装依赖后,直接运行一个Demo录音的项目,访问 http://localhost:3000/examples/index.html 的html文件,可以看到本地运行Demo,获取实时识别结果。
// 下载源代码
git clone https://github.com/TencentCloud/tencentcloud-speech-sdk-js.git
// 进入项目目录
cd tencentcloud-speech-sdk-js
// 安装添加依赖包
npm run install
// 运行项目
npm run dev
访问 http://localhost:3000/examples/index.html 的html文件,点击“开始识别”按钮,点击了好多次,没有任何反应,打开Console控制台,发现有报错“识别失败,请确认是否填入账号信息”,需要配置SecretID 和 SecretKey的一些信息。
在设置SecretID 和 SecretKey、appId相关信息后,会有一个系统授权的弹框提示,这里推荐使用“每次访问时都允许”,当然,SDK内置录音采用 MediaDevices接口,有些老浏览器是不支持的(不兼容IE浏览器、夸克浏览器和UC浏览器),但是基本上主流的浏览器是支持的,其它浏览器兼容性可具体参考文档。
我用的是Chrome浏览器,版本 124.0.6367.209(正式版本) (x86_64)。
注意:在个别手机版本上也会存在兼容性问题:
注意:使用同一台电脑一边播放音频,一边开启麦克风识别,是没有作用的,我是使用了手机进行音频播放。
记得小时候朗读普通话《观沧海》拿到奖状,当时为了纠正不良的发音,专门买了MP3来进行练习,今天看看能不能让“腾讯云语音”让它来进行音词转文字。
为了防止我的地域性普通话不标准,这里下接找到一篇普通话版本在线的古诗词曹操的《观沧海》,当点击“开始识别”后,手机播放打开播音后,可以看到可以自动根据声音识别出文案,在识别的过程中,也发现有AI的功能,在自动进行转化为符合要求的组词、语句等,不过,很意外的是,有一个字识别错了。后面再试的话,就没发现了,看来是大数据AI有优化模型的效果。
同理,在网上找了一篇粤语版本在线的古诗词曹操的《观沧海》,在点击“开始识别”后,可以看到只有5%左右的识别率,很多字识别不到,根本无法使用,感觉到疑惑?
为什么识别率这么低呢?产品的特点就是可以支持粤语、上海话、四川话等24种方言,这里也是咨询了群活动的“郭静”老师,同时,也是给予我很大的帮助,经过咨询的答案是需要使用“大模型语音识别”类型。
腾讯云语音识别大模型于2024年3月28日起升级为普方英大模型,该引擎可同时支持中文、英文、多种中文方言等语言的识别,识别准确率对比通用版提升明显。
可以看到通过“在线录音文件识别”打开一个网页(需要提前登录一下),这里的识别类型分为2类:“通用语单识别”、“大模型语单识别”,可以通过直接上传文件或 URL 链接体验录音文件识别功能,也可以通过扫码体验实时语音识别功能。
上面我们可以使用上传文件的方式,很快就可以把文件上传完成,默认的参数也不需要太修改,直接切换“识别类型”即可,其中,“大模型语音识别”还针对噪声、回音大、人声小、人声远等低质量音频的识别做了很多的优化方案,极大的增加了识别的准确率,注意下面有一个2种识别类型的结果方案比对。
默认上传一个mp3的音频文件后(貌似不能上传mp4文件,复制一份将mp4改为mp3即可),点击“开始识别”时发生识别失败报错了,查看失败的原因为“资源包耗尽,请购买资源包或开通后付费”。
通过查找原因,发现免费的流量包只能适用于通用语单ASR识别,如果使用ASR大模型,需要够买资源包,可以进行开通后付费,用多少付多少,有点类似于Serverless的形式,对比一下预付费,确实收费有点高,对于体验与测试来讲,不是太划算。
在“开通后付费”的过程中,需要进行一个短信验证码的身份安全验证,确认后,会再次提醒自动转入后付费的一些扣费规则说明,且一个月只能变更一次。
开通后付费后,我们再次对录音的文件进行识别,发现使用“大模型”语音识别的结果,将近有80%的正确率,比上次5%的情况强太多了。
以上是通过同一个文件,可以使用“通用模型识别”结果与“大模型识别”结果,进行比较,差距还是非常明显的,没有背景的字表示匹配上了。
也可以在识别记录中,可以查看一下识别的音频结果列表,近一分钟的语音文件,2种“通用模型识别”与“大模型识别”的类型转码的效率也是非常快的,都是不到2秒钟就能识别出结果,不过,这里建议加一个识别的耗时,就更方便了进行数据量化的统计。
因为源码中只有“16k_zh”的模型,我这里对源码做了一些改造,使用select可以选择不同的模型,修改EngineModelType类型参数,可以更好的进行不同模型的测试。
小结:
古诗词只能在特定的某些垂直的领域场景才能用的到,比如小孩背诵的正确率对比,课文的朗读评分,类似于作业帮这些软件场景使用的多,接下来,我们趁热打铁,一起来看一下生活中交流的场景,比如电视剧的字幕翻译转换。
网上搜了一下,粤语相关的电视剧,看了一下陈浩明版本的《封神榜》还算比较熟悉,所以,我们找到国语版本的第8集,可以看到对于普通话的识别率也比较高,首次测试只有一个错词“打应”,没有把“大营”翻译对。
同样,找到粤语版本的第8集,可以看到粤语的识别率也是差不多98%左右。
为了做测试比较,我们每个音频做了5组测试,可以看到在普通话这块,“腾讯云语音”确实可以做到99%的正确率,特别是像名字,还能够还原,而且,当有问题的时候,在后面的版本中,可能是有大数据、AI智能在帮助提高争取率。
当然,在方面的表现能力来看,粤语表面的能力稍微欠缺一点,大概在98%左右的正确率,同时,也有是对重庆话有过一些简单的说话测试,大概也是在99%左右,稍微表现比粤语要强一点。
开发者通过简单集成语音云控件SDK,就可以使用腾讯云语音识别的语音云服务,门槛已经不再高不可攀。
这段代码从package.json的Scripts命令分析是包含3个功能:
SecretID 和 SecretKey 作为敏感信息,不建议直接放在前端代码里运行,可以通过接口服务获取,同时建议采取临时密钥方案,具体可参考临时身份凭证,将获取到的tmpSecretId、tmpSecretkey 和 Token 依次作为参数 secretid、secretkey 和 token传入,建议使用后端提供一个API接口,如果有写OSS的经验,通常文件上传后端会提供一个token的接口。
从上面的描述,SecretID 和 SecretKey 作为敏感信息,不建议直接放在前端代码里运行,腾讯云语音SDK为开发者提供了访问腾讯云语音识别、语音合成等语音服务的配套开发工具,简化腾讯云语音服务的接入流程,本项目是腾讯云语音SDK的Go语言版本。
// Linux 或 MacOS:
export GOPROXY=https://mirrors.tencent.com/go/
// Windows:
set GOPROXY=https://mirrors.tencent.com/go/
设置完成后,可以使用“go env”来查看是否设置成功,里面有一个属性“GOPROXY”。
依赖环境说明(Go 1.13 版本及以上),推荐使用go mod方式引用安装,本文使用gin框架来提供一个Web服务,用于接收前端的数据来使用云语音来解析数据,首先初始化并安装gin框架。
mkdir gin-go
cd gin-go
go mod init github.com/gin-go
go get -u github.com/gin-gonic/gin
安装依赖包完成后,再按需安装腾讯云语音Go语言版本的SDK,v1.0.170后可以按照产品下载,只需下载基础包和对应的产品包(如asr)即可,不需要下载全部的产品,从而加快构建镜像或编译的速度:
// 安装公共基础包:
go get github.com/tencentcloud/tencentcloud-speech-sdk-go@latest
// 安装对应的产品包(如asr):
github.com/tencentcloud/tencentcloud-speech-sdk-go/asr
稍微改造一下官方给的示例代码,可以直接解析一个mp3的格式的方法,如下我们准备了一首自己比较喜欢的歌《流浪地球》,来识别一下能不能成功,可以注意一下,以下有3个改动点。
package main
import (
"fmt"
"io/ioutil"
"os"
"time"
"github.com/tencentcloud/tencentcloud-speech-sdk-go/asr"
"github.com/tencentcloud/tencentcloud-speech-sdk-go/common"
)
// 第一步:修改以下相关的AppId、SecretID、SecretKey等信息
var (
// AppID AppID
AppID = "xxx"
// SecretID SecretID
SecretID = "xxxx"
// SecretKey SecretKey
SecretKey = "xxxx"
// EngineType EngineType
EngineType = "16k\_zh"
)
func process(file string) {
audio, err := os.Open(file)
defer audio.Close()
if err != nil {
fmt.Printf("open file error: %v\n", err)
return
}
credential := common.NewCredential(SecretID, SecretKey)
recognizer := asr.NewFlashRecognizer(AppID, credential)
data, err := ioutil.ReadAll(audio)
if err != nil {
fmt.Printf("%s|failed read data, error: %v\n", time.Now().Format("2006-01-02 15:04:05"), err)
return
}
req := new(asr.FlashRecognitionRequest)
req.EngineType = EngineType
// 第二步:修改以下值为对应的语音类型
req.VoiceFormat = "mp3"
req.SpeakerDiarization = 0
req.FilterDirty = 0
req.FilterModal = 0
req.FilterPunc = 0
req.ConvertNumMode = 1
req.FirstChannelOnly = 1
req.WordInfo = 0
resp, err := recognizer.Recognize(req, data)
if err != nil {
fmt.Printf("%s|failed do recognize, error: %v\n", time.Now().Format("2006-01-02 15:04:05"), err)
return
}
fmt.Printf("request\_id: %s\n", resp.RequestId)
for \_, channelResult := range resp.FlashResult {
fmt.Printf("channel\_id: %d, result: %s\n", channelResult.ChannelId, channelResult.Text)
}
}
func main() {
// 第三步:定义文件的url路径,后面可以更换为远程的url也可以
var f = "111.mp3"
process(f)
fmt.Println("Main: Completed")
}
以上可以看到在安装腾讯云语音Go语言版本的SDK后,即可识别出对应的歌曲的文字(包括英文)。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。