前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转腾讯云语音识别

玩转腾讯云语音识别

原创
作者头像
用户10585271
修改2024-06-06 11:56:43
2242
修改2024-06-06 11:56:43
举报
文章被收录于专栏:个人技术专栏个人技术专栏

一、前言:

随着互联网时代的进步,智能产品逐渐配备了更加多元化的功能应用、更加丰富的内容资源,用户在使用语音相关的功能时,越来越多的需求需要向智能产品用户提供更便捷的操作体验,语音转换成文本,语音识别是人工智能领域极为重要的前沿技术,实现快速、高效、准确的语音识别及控制,实现智能行业内全新的便捷操作模式。

人类的体力是有极限的,尤其是在高强度压力下,工作时间越长出错概率越大,而机器则能自始至终保持同一水平,人工智能的并发能力也非人工所能及,通过基于云计算的语音识别技术,它可以将语音信号转换为文本内容,再搭配人工智能AI的稳定性和并发计算能力是其优势,尤其是在发现错别字后,机器可以瞬间修改所有错误,人工速记则需要在演讲人短暂间歇的时刻返回修改,明显表现得慌乱。

腾讯云语音产品是一种通过使用语音云识别,开发者可以将语音输入转化为可供计算机处理的文本数据,从而实现语音交互、语音搜索、语音指令等功能。

腾讯云语音产品基于业界领先的语音识别(ASR)和语音合成(TTS)技术,为各行业提供从标准化到定制化全方位智能语音服务,更以卓越的性能与极具竞争力的价格赢得了市场的广泛认可。广泛应用于录音质检、会议转写、语音输入法、智能客服、有声阅读、新闻播报、数智人、电商直播、短视频制作等行业场景。


二、腾讯云语音识别:

腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务,被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。


1. “腾讯云语音识别”应用的场景:

“腾讯云语音识别”作为一种先进的语音识别技术,具有广泛的应用场景,以下是对其可能的应用场景的详细列举和描述:

  • ①. 智能语音助手:在日常生活中,腾讯云语音识别可以被集成到智能语音助手中,如手机助手或智能家居系统。用户只需通过语音指令,即可实现各种功能操作,如查询天气、播放音乐、设定闹钟等,极大提升了生活的便捷性。
  • ②. 实时语音转写:在会议、讲座或法庭审讯等场合,腾讯云语音识别能够实时将语音内容转写成文字,辅助记录人员更准确地捕捉每一个细节,并显著提高工作效率。同时,这也为听力障碍人士提供了更友好的信息获取方式。
  • ③. 语音输入法:在移动设备或电脑上,利用腾讯云语音识别作为语音输入法,可以让用户通过语音快速输入文字,无需手动打字,从而节省时间并降低输入错误率。这在处理大量文字输入或进行即时通讯时尤为实用。
  • ④. 智能客服:在客户服务领域,腾讯云语音识别可以助力构建智能客服系统。通过识别客户的语音问题,系统能够自动提供相应的解答或建议,从而优化客户体验,减轻人工客服的工作负担。
  • ⑤. 语音搜索:在搜索引擎中集成腾讯云语音识别功能,可以使用户通过语音进行搜索查询,无需手动输入关键词。这不仅提高了搜索的便捷性,还使得在特定场景(如驾驶时)进行搜索更加安全。
  • ⑥. 多媒体内容管理:对于包含大量语音的多媒体内容,如音频文件、视频节目等,腾讯云语音识别可以帮助生成精确的语音字幕,提升内容的可访问性和搜索效率。此外,这还有助于对多媒体内容进行深度分析和挖掘。
  • ⑦. 医疗健康:在医疗健康领域,腾讯云语音识别也大有可为。例如,它可以帮助医生将口述的病历或诊断意见快速转换成文字记录,提高医疗工作的效率。同时,对于患者而言,通过语音识别技术可以更轻松地与医疗系统进行交互,获取健康信息和服务。

综上所述,腾讯云语音识别技术在多个领域都具有广泛的应用潜力,能够显著提升各行业的智能化水平和用户体验。


2. “腾讯云语音识别”产品的优势:

腾讯云语音识别是一项基于云计算的语音识别服务,可以将语音转换为文本。它可以广泛应用于语音输入、语音搜索、语音助手、智能客服等领域。腾讯云语音识别具有高准确率、低延迟、支持多种语言等特点。

“腾讯云语音识别”产品作为业界领先的语音识别服务,拥有多项明显优势。以下是对其优势的详细列举和阐述:

  • ①. 高识别准确率:腾讯云语音识别采用了先进的深度学习技术和大规模语音数据训练,确保在多种场景下都能实现高准确率的语音转文字服务。这大大降低了识别错误,提升了用户体验。
  • ②. 丰富的场景适配:该产品针对不同场景(如嘈杂环境、远距离识别、多语种混合等)进行了专门优化,能够智能适应各种复杂语音环境,确保识别的稳定性和可靠性。
  • ③. 实时响应速度:腾讯云语音识别具备极快的响应速度,能够实现近乎实时的语音转写服务。这对于需要即时反馈的应用场景(如直播、会议记录等)至关重要。
  • ④. 灵活的定制能力:产品提供丰富的定制选项,支持用户根据自身需求调整识别模型,如添加自定义词汇、优化特定领域术语的识别等,从而更好地满足个性化需求。
  • ⑤. 强大的抗噪能力:在嘈杂环境下,腾讯云语音识别依然能够保持较高的识别准确率,有效滤除背景噪音,提取出清晰的语音信息。
  • ⑥. 多语种支持:产品支持多种语言的识别,不仅覆盖全球主流语言,还能应对各种方言和口音的挑战,为国际化应用提供了便利。
  • ⑦. 易用的API接口:腾讯云语音识别提供简洁易用的API接口,便于开发者快速集成到各类应用中。同时,丰富的文档和技术支持也大大降低了开发难度和成本。

综上所述,“腾讯云语音识别”产品以其高准确率、广泛场景适配、实时响应、灵活定制、强大抗噪、多语种支持以及易用的API接口等优势,为众多行业和场景提供了高效、便捷的语音识别解决方案。


三、腾讯云语音识别体验:

腾讯云语音识别(Tencent Cloud Speech Recognition)是腾讯云提供的一项语音转文字服务,它能够将语音信号转换成文本内容,要使用腾讯云语音识别服务,通常需要完成以下几个步骤:

  • ①. 注册腾讯云账号:需要在腾讯云官方网站上注册一个账号。
  • ②. 创建语音识别应用:在腾讯云控制台中,找到语音识别服务,并创建一个应用。在这个过程中,获得一些关键的凭证信息,如SecretId和SecretKey,这些信息将用于后续的API调用。
  • ③. 调用语音识别API:根据具体需求,通过HTTP请求调用腾讯云的语音识别API,需要按照API文档的要求,传递必要的参数,如语音数据的格式、识别语言等。
  • ④. 处理识别结果:腾讯云的语音识别API将返回识别的文本结果,可以在应用程序中处理这些结果,比如显示在界面上、存储到数据库或进行进一步的分析。

1. 开通“腾讯云语音识别服务”并查看免费额度:

在使用之前可以先查看一下资源包,如果首次开通的话,会有一些免费资源包,用完时将自动转入后付费,扣费的顺序为“免费资源包 >> 付费资源包 >> 后付费”,可以先用赠送的免费额度进行测试。


2. 创建密钥:

腾讯云为API服务提供了一套API密钥验证机制,API密钥由腾讯云颁发给云主机的所有者,它由 APPID、SecretId 和 SecretKey 组成,API 密钥是构建腾讯云 API 请求的重要凭证,使用腾讯云 API 可以操作所有腾讯云资源,为了服务安全,请妥善保存和定期更换密钥。

在“语音识别概览”中,可以点击“创建密钥”,即可进入API密钥管理界面:

  1. 高风险提示:因为账号是个人使用,所以点击“继续使用”,如果是企业账号强烈推荐使用“切换使用子账号密钥”进行管理,子账号密钥与子账号权限一致,只需授予子账号权限,子账号密钥就拥有相应的权限。

    1. SecretKey查询下线提示:需要勾选按钮,这里需要注意的是已经关闭了查询SecretKey的功能,所以需要提前保存好。

在“API密钥管理”中,可以看到API密钥的列表,API密钥由APPID、SecretId及SecretKey组成,如果该列表为空,请点击“新建密钥”创建一个,可以点击“新建密钥”进行生成API/SDK调用所需的签名APPID、SecretId与SecretKey信息,需要保存一下,因为我之前创建过了,也忘记了,无奈只能再重新生成一个。

温馨提示:一旦发现API密钥可能被泄露,并由此可能会产生信息安全问题,强烈建议禁用此API密钥,只需登录腾讯云在云API密钥列表中,将其禁用即可。


3. 下载官方SDK:

腾讯云语音SDK为开发者提供了访问腾讯云语音识别、语音合成等语音服务的配套开发工具,简化腾讯云语音服务的接入流程。

可以看到官方提供了 “客户端”、“小程序”、“前端”、“服务端”的多个类型的SDK,其中,为了快速了解,推荐直接使用“前端的SDK”直接先小试牛刀一下,快速尝鲜一下。

在服务方式上,腾讯云语音提供简单易用的API或SDK,使得应用产品能够通过API直接调用公有云服务,计算和存储的压力都放在云端进行。降低了应用产品开发的成本,这样,具体应用开发者就能够更多的专注于业务需求的开发,而不是纠结于语音识别的方法和准确率上。


4. 启动前端JS SDK服务:

功能介绍:

使用的前端JS的SDK,主要是通过使用JavaScript的MediaDevices接口实现浏览器调用麦克风录音的功能,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。

代码实践过程:

将SDK代码下载下来,通过安装依赖后,直接运行一个Demo录音的项目,访问 http://localhost:3000/examples/index.html 的html文件,可以看到本地运行Demo,获取实时识别结果。

代码语言:js
复制
// 下载源代码

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的一些信息。

依赖环境:

    1. 需要在腾讯云控制台已开通相关语音产品。
    1. 需要在腾讯云控制台访问管理页面获取 SecretID 和 SecretKey 。
    1. 需要在腾讯云控制台账号信息页面获取AppId。
    1. 需要将获取的参数填入examples/config.js中。

在设置SecretID 和 SecretKey、appId相关信息后,会有一个系统授权的弹框提示,这里推荐使用“每次访问时都允许”,当然,SDK内置录音采用 MediaDevices接口,有些老浏览器是不支持的(不兼容IE浏览器、夸克浏览器和UC浏览器),但是基本上主流的浏览器是支持的,其它浏览器兼容性可具体参考文档。

我用的是Chrome浏览器,版本 124.0.6367.209(正式版本) (x86_64)。

注意:在个别手机版本上也会存在兼容性问题:

    1. IOS16.2不支持getUserMedia录音API;
    1. 微信浏览器使用录音时,有版本要求 IOS14.3+、6.5+(微信版本);

5. 实际测试:

注意:使用同一台电脑一边播放音频,一边开启麦克风识别,是没有作用的,我是使用了手机进行音频播放。


5.1 古诗词识别:

记得小时候朗读普通话《观沧海》拿到奖状,当时为了纠正不良的发音,专门买了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类型参数,可以更好的进行不同模型的测试。


小结:

古诗词只能在特定的某些垂直的领域场景才能用的到,比如小孩背诵的正确率对比,课文的朗读评分,类似于作业帮这些软件场景使用的多,接下来,我们趁热打铁,一起来看一下生活中交流的场景,比如电视剧的字幕翻译转换。


5.2 电视剧字幕转换:

网上搜了一下,粤语相关的电视剧,看了一下陈浩明版本的《封神榜》还算比较熟悉,所以,我们找到国语版本的第8集,可以看到对于普通话的识别率也比较高,首次测试只有一个错词“打应”,没有把“大营”翻译对。

同样,找到粤语版本的第8集,可以看到粤语的识别率也是差不多98%左右。

5.3 结果对比:

为了做测试比较,我们每个音频做了5组测试,可以看到在普通话这块,“腾讯云语音”确实可以做到99%的正确率,特别是像名字,还能够还原,而且,当有问题的时候,在后面的版本中,可能是有大数据、AI智能在帮助提高争取率。

当然,在方面的表现能力来看,粤语表面的能力稍微欠缺一点,大概在98%左右的正确率,同时,也有是对重庆话有过一些简单的说话测试,大概也是在99%左右,稍微表现比粤语要强一点。


6. 项目目录代码分析:

开发者通过简单集成语音云控件SDK,就可以使用腾讯云语音识别的语音云服务,门槛已经不再高不可攀。

这段代码从package.json的Scripts命令分析是包含3个功能:

  • “yarn test”用于执行单元测试的代码,但是源码是并没有提供单元测试相关的代码,其实这条命令是可以删除的。
  • “yarn dev”用于启动一个Node的Web Server端口号3000,用于访问一个Demo的实例,用于进行麦克风的语音识别功能。
  • “yarn build”用于Rollup打包esm的文件。

7. 注意事项:

SecretID 和 SecretKey 作为敏感信息,不建议直接放在前端代码里运行,可以通过接口服务获取,同时建议采取临时密钥方案,具体可参考临时身份凭证,将获取到的tmpSecretId、tmpSecretkey 和 Token 依次作为参数 secretid、secretkey 和 token传入,建议使用后端提供一个API接口,如果有写OSS的经验,通常文件上传后端会提供一个token的接口。


四、后端Go代码生成云语音微服务:

从上面的描述,SecretID 和 SecretKey 作为敏感信息,不建议直接放在前端代码里运行,腾讯云语音SDK为开发者提供了访问腾讯云语音识别、语音合成等语音服务的配套开发工具,简化腾讯云语音服务的接入流程,本项目是腾讯云语音SDK的Go语言版本。

1. 推荐使用腾讯云镜像加速下载:

代码语言:js
复制
// Linux 或 MacOS:

export GOPROXY=https://mirrors.tencent.com/go/



// Windows:

set GOPROXY=https://mirrors.tencent.com/go/

设置完成后,可以使用“go env”来查看是否设置成功,里面有一个属性“GOPROXY”。


2. 安装gin框架和腾讯云语音SDK:

依赖环境说明(Go 1.13 版本及以上),推荐使用go mod方式引用安装,本文使用gin框架来提供一个Web服务,用于接收前端的数据来使用云语音来解析数据,首先初始化并安装gin框架。

代码语言:js
复制
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)即可,不需要下载全部的产品,从而加快构建镜像或编译的速度:

代码语言:js
复制
// 安装公共基础包:

go get github.com/tencentcloud/tencentcloud-speech-sdk-go@latest

// 安装对应的产品包(如asr):

github.com/tencentcloud/tencentcloud-speech-sdk-go/asr

稍微改造一下官方给的示例代码,可以直接解析一个mp3的格式的方法,如下我们准备了一首自己比较喜欢的歌《流浪地球》,来识别一下能不能成功,可以注意一下,以下有3个改动点。

代码语言:js
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言:
  • 二、腾讯云语音识别:
    • 1. “腾讯云语音识别”应用的场景:
      • 2. “腾讯云语音识别”产品的优势:
      • 三、腾讯云语音识别体验:
        • 1. 开通“腾讯云语音识别服务”并查看免费额度:
          • 2. 创建密钥:
            • 3. 下载官方SDK:
              • 4. 启动前端JS SDK服务:
                • 功能介绍:
                • 代码实践过程:
                • 依赖环境:
              • 5. 实际测试:
                • 5.1 古诗词识别:
                • 解决方案:
                • 5.2 电视剧字幕转换:
                • 5.3 结果对比:
              • 6. 项目目录代码分析:
                • 7. 注意事项:
                • 四、后端Go代码生成云语音微服务:
                  • 1. 推荐使用腾讯云镜像加速下载:
                    • 2. 安装gin框架和腾讯云语音SDK:
                    相关产品与服务
                    语音识别
                    腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档