探索腾讯云语音:智能语音识别的行业应用与技术展望

一、背景

交通运输行业的调度中心是确保运输流程顺畅与安全的神经中枢。在紧急情况或事故发生时,能够迅速而准确地回溯事件细节对于采取有效应对措施至关重要。

为了提升调度中心的响应能力与效率,我计划引入腾讯的先进语音技术,构建一套全面的解决方案,以强化这一关键应用场景。

二、腾讯云语音识别

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

产品官网地址

语音识别:https://cloud.tencent.com/product/asr

语音合成:https://cloud.tencent.com/product/tts

声音工坊:https://cloud.tencent.com/product/ttsw

三、环境部署

1、账号准备

在调用语音识别相关接口前,您需要进入 语音识别控制台,进行实名认证和人脸认证,认证完成后,阅读《用户协议》后勾选“我已阅读并同意《用户协议》”,然后单击【立即开通】,即可一键开通录音文件识别、实时语音识别、一句话识别、录音文件识别极速版、语音流异步识别服务接口,如需开通营业执照核验或增值税发票核验功能,可前往官网页服务介绍页申请开通,审核通过后即可使用该服务。

2、下载腾讯sdk,以python代码作为测试

代码语言:javascript
复制
git clone https://github.com/TencentCloud/tencentcloud-speech-sdk-python.git

依赖环境
python 环境
pip命令行安装websocket, websocket-client, requests 注意:websocket-client必须是0.48版本
在腾讯云控制台账号信息页面查看账号APPID,访问管理页面获取 SecretID 和 SecretKey 。
注:TTS websocket,仅支持python3,使用前需安装websocket-client包,如下
pip3 install websocket-client

3、安装依赖库

代码语言:javascript
复制
pip install --upgrade tencentcloud-sdk-python-common tencentcloud-sdk-python-asr

四、使用场景及测试用例试用

录音文件转译测试

使用场景:

  1. 历史语音数据管理:结合腾讯云的语音识别和大数据分析能力,对历史语音通信数据进行存储和分析,便于在需要时快速检索和回溯。
  2. 事故回溯与报告生成:在事故发生后,利用ASR技术快速生成事故报告,结合语音分析结果,提供决策支持。

打开tencentcloud-speech-sdk-python/examples/asr/flashexample.py文件,修改并测试

1、填入账号信息

代码语言:javascript
复制
# 注意:使用前务必先填写APPID、SECRET_ID、SECRET_KEY,否则会无法运行!!!
APPID = "1253****"
SECRET_ID = "AKISE"
SECRET_KEY = "e3F
wE"

2、接口参数配置

代码语言:javascript
复制
ENGINE_TYPE = "8k_zh"
#注意:电话通讯场景,请务必使用以下8k引擎
#• 8k_zh:中文电话通讯;
#• 8k_en:英文电话通讯;
#• 8k_zh_large:普方大模型引擎【大模型版】。当前模型同时支持中文、多种中文方言等语言的识别,模型参数量极大,语言模型性能增强,针对电话音频中各类#场景、各类中文方言的识别准确率极大提升,点击这里 对比常规版本与普方模型版本的识别效果; [免费试用暂时不开放]

设置过滤模式,0表示不过滤

req.set_filter_modal(0)

设置过滤标点符号,0表示不过滤

req.set_filter_punc(0)

设置过滤脏词,0表示不过滤

req.set_filter_dirty(0)

设置语音格式为"MP3",修改音频文件类型及文件来源

req.set_voice_format("mp3")

设置是否返回单词的详细信息,0表示不返回

req.set_word_info(0)

设置是说话人分离,0表示关闭

req.set_speaker_diarization(1)

设置数字转换模式,1表示转换为数字

req.set_convert_num_mode(1)

音频路径

audio = "./test2.wav"

3、测试,输出运行结果

其中返回的内容格式为

代码语言:javascript
复制
 reponse:
字段名 类型
request_id string
status Integer
message String
audio_duration Integer
flash_result Result Array

Result的结构体格式为:
text              String
channel_id        Integer
sentence_list     Sentence Array

Sentence的结构体格式为:
text              String
start_time        Integer    
end_time          Integer    
speaker_id        Integer    
word_list         Word Array

Word的类型为:
word              String 
start_time        Integer 
end_time          Integer 
stable_flag:     Integer 

若将返回单词的功能打开
req.set_word_info(1)
返回结果为
{'text': '喂,你好。', 'start_time': 0, 'end_time': 1010, 'speaker_id': 0, 'word_list': [{'word': '喂', 'start_time': 0, 'end_time': 180, 'stable_flag': 1, 'voice_type': 0}, {'word': '你好', 'start_time': 180, 'end_time': 650, 'stable_flag': 1, 'voice_type': 0}]}
{'text': '嗯。', 'start_time': 9600, 'end_time': 10370, 'speaker_id': 0, 'word_list': [{'word': '嗯', 'start_time': 0, 'end_time': 230, 'stable_flag': 1, 'voice_type': 0}]}

实时语音转录测试

使用场景:

  1. 实时语音监控**:利用腾讯的自动语音识别(ASR)技术,实时将驾驶员与调度中心的通信语音转换为文本,确保关键指令和信息的准确记录。
  2. 智能语音分析:通过语音分析技术,自动识别语音中的关键词汇和情绪变化,快速识别紧急情况并触发警报系统。

打开tencentcloud-speech-sdk-python/examples/asr/asrexample.py文件,修改并测试。将音源替换为本地麦克风输入

代码语言:javascript
复制
    import pyaudio

    stream = pa.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=SLICE_SIZE)
    # 开始录音
    print("Recording...")
    while True:
        ...
        try:
            recognizer.start()
            audio = stream.read(SLICE_SIZE)
            recognizer.write(audio)
        except Exception as e:
            print(e)
        finally:
            recognizer.stop()</code></pre></div></div><blockquote><p>测试效果:

可以正常解析,响应也很及时

代码语言:javascript
复制
2024-06-08 15:51:41,969 tencent_speech.log-INFO  start:295 f1c45a1c-256b-11ef-93f3-d4d853bb5719 recognition start

2024-06-08 15:51:54,332 tencent_speech.log-INFO on_sentence_end:46 2024-06-08 15:51:54|f1c45a1c-256b-11ef-93f3-d4d853bb5719|OnSentenceEnd, rsp 礼拜几,今天礼拜几呀

2024-06-08 15:51:58,863 tencent_speech.log-INFO on_sentence_end:46 2024-06-08 15:51:58|f1c45a1c-256b-11ef-93f3-d4d853bb5719|OnSentenceEnd, rsp 今天礼拜几?今天是端午节

2024-06-08 15:52:02,035 tencent_speech.log-INFO on_sentence_end:46 2024-06-08 15:52:02|f1c45a1c-256b-11ef-93f3-d4d853bb5719|OnSentenceEnd, rsp 今天是中央

2024-06-08 15:52:03,411 tencent_speech.log-INFO on_sentence_end:46 2024-06-08 15:52:03|f1c45a1c-256b-11ef-93f3-d4d853bb5719|OnSentenceEnd, rsp 嗯

2024-06-08 15:52:08,537 tencent_speech.log-INFO on_sentence_end:46 2024-06-08 15:52:08|f1c45a1c-256b-11ef-93f3-d4d853bb5719|OnSentenceEnd, rsp 端午节快乐

五、部分功能测试

接口解析时间测试:

0:04秒的语音,ENGINE_TYPE = "8k_zh",平均解析时间为0.48秒

代码语言:javascript
复制
request_id:  6663f2ef5e7c3b8863c480b0
{'text': '北京科技馆。', 'start_time': 1080, 'end_time': 2550, 'speaker_id': 0}
asr转译执行次数1,执行时间为:0.67秒
request_id: 6663f350e4967b7e25771fb0
asr转译执行次数2,执行时间为:0.58秒
request_id: 6663f35090233b8813d151b0
asr转译执行次数3,执行时间为:0.44秒
request_id: 6663f35109a73b88789a3cb0
asr转译执行次数4,执行时间为:0.60秒
request_id: 6663f351fb6a7b7ed27903b0
asr转译执行次数5,执行时间为:0.37秒
request_id: 6663f352d8b13b8814f121b0
asr转译执行次数6,执行时间为:0.42秒
request_id: 6663f35298367b7eae7298b0
asr转译执行次数7,执行时间为:0.36秒
request_id: 6663f35220483b88716348b0
asr转译执行次数8,执行时间为:0.38秒
request_id: 6663f353a3ca7b7e70b875b0
asr转译执行次数9,执行时间为:0.63秒
request_id: 6663f353cbb63b88698556b0
asr转译执行次数10,执行时间为:0.35秒
asr转译平均执行时间为: 0.480242919921875 秒

2:30秒的语音,ENGINE_TYPE = "8k_zh",平均解析时间为2.61秒

代码语言:javascript
复制
request_id:  666265e429143b8848e4aeb0
asr转译执行次数1,执行时间为:2.33秒
request_id: 666265e7dd2d3b88ab88b1b0
asr转译执行次数2,执行时间为:3.31秒
request_id: 666265ea2d263b88bd2e5eb0
asr转译执行次数3,执行时间为:2.30秒
request_id: 666265ec523f3b88e71a72b0
asr转译执行次数4,执行时间为:2.89秒
request_id: 666265ef0c8c7b7e725c7db0
asr转译执行次数5,执行时间为:2.09秒
request_id: 666265f18c2f24da0e881cb0
asr转译执行次数6,执行时间为:2.14秒
request_id: 666265f3bc9624daa0e496b0
asr转译执行次数7,执行时间为:2.88秒
request_id: 666265f61f213b88375a8db0
asr转译执行次数8,执行时间为:2.91秒
request_id: 666265f9d69a24dade7507b0
asr转译执行次数9,执行时间为:2.93秒
request_id: 666265fcf11c7b7eeedbe2b0
asr转译执行次数10,执行时间为:2.40秒
asr转译平均执行时间为: 2.618130421638489 秒

多语言支持

考虑到跨国运输的需求,确保系统支持多语言识别,为不同国家和地区的驾驶员提供服务。

英语和中文混用场景下的测试:

测试数据采用的是2023年全国新高考1卷、2卷(答案+录音稿),截取的是前五分钟

ENGINE_TYPE = "16k_zh",执行时间为:8.94秒,识别的中文文字与英文均保持一致

代码语言:javascript
复制
{'text': '你将听到以下内容。', 'start_time': 219760, 'end_time': 222920, 'speaker_id': 0}
{'text': 'Excuse me can you tell me how much the shirt is.', 'start_time': 223340, 'end_time': 227790, 'speaker_id': 1}
{'text': "Yes it's nine fifteen.", 'start_time': 227790, 'end_time': 230840, 'speaker_id': 2}
{'text': '你将有5秒钟的时间将正确答案标在试卷上。', 'start_time': 232320, 'end_time': 238940, 'speaker_id': 0}
{'text': '衬衫的价格为9磅15便是,所以你选择C项。', 'start_time': 239460, 'end_time': 247000, 'speaker_id': 0}
{'text': '并将其标在试卷上。', 'start_time': 247000, 'end_time': 249680, 'speaker_id': 0}
{'text': '现在你有5秒钟的时间阅读第一小题的有关内容。', 'start_time': 249960, 'end_time': 257360, 'speaker_id': 0}
{'text': 'Jack are you going camping with your friends this weekend.', 'start_time': 264560, 'end_time': 269060, 'speaker_id': 2}
{'text': "It depends if it sunny we'LLGO.", 'start_time': 269060, 'end_time': 273060, 'speaker_id': 1}
{'text': "The weather man says it's going to rain.", 'start_time': 273060, 'end_time': 276620, 'speaker_id': 2}
{'text': "In that case we'LL go to the cinema instead.", 'start_time': 276620, 'end_time': 281040, 'speaker_id': 1}

方言测试

截取了一段7分钟的周星驰电影粤语片段

ENGINE_TYPE = "16k_zh",执行时间为:22秒,表现不是很理想,文本没有完全转译下来

代码语言:javascript
复制
request_id:  6664078d781d3b88eae042b0
{'text': '大家我大家我车真的没他从我这里抽筋。', 'start_time': 0, 'end_time': 34080, 'speaker_id': 0}
{'text': '我。', 'start_time': 94460, 'end_time': 115140, 'speaker_id': 0}
{'text': '办,但我没办规哥那个我原来。', 'start_time': 232380, 'end_time': 239220, 'speaker_id': 0}
{'text': '我。', 'start_time': 239420, 'end_time': 278840, 'speaker_id': 0}
{'text': '你这个游戏,我这个那个手洗包去没。', 'start_time': 336220, 'end_time': 358520, 'speaker_id': 0}
{'text': '怎么?', 'start_time': 359540, 'end_time': 379960, 'speaker_id': 0}
{'text': '了,来来来来电话。', 'start_time': 380600, 'end_time': 394640, 'speaker_id': 0}
{'text': '做饭有要上去啊,哎,我干嘛,我要不能给他朋友打个啊咬啊来,哎呀哎呀哎呀哎呀呀,全部停,雕英的东方不败的师傅。', 'start_time': 395140, 'end_time': 410700, 'speaker_id': 0}
{'text': '我。', 'start_time': 422500, 'end_time': 459757, 'speaker_id': 0}
asr转译执行次数1,执行时间为:22.21秒
asr转译平均执行时间为: 22.208552598953247 秒

碰到的小问题

每次更新热词后,都会有10-15分钟左右服务不可调用,接口返回404 not found error。

代码语言:javascript
复制
'<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
'

六、总结

在深入体验了腾讯云的自动语音识别(ASR)模块后,以下是对其功能场景的综合评估:

  1. 高准确度:ASR模块对于标准普通话和主要外语的识别表现出色,但在处理方言、特殊口音和专业术语时,准确度有待进一步提升。
  2. 噪声适应性:在低噪声环境中,ASR模块的识别效果显著,然而在高噪声环境下的表现则需要进一步的技术优化。
  3. 实时响应:ASR模块在实时对话场景中展现出迅速的响应能力,这对于维持流畅的用户体验极为关键。
  4. 多语言兼容性:ASR模块对多语言混合输入的处理能力初显成效,但还需通过更广泛的测试来验证其稳定性和可靠性。

未来展望:

  1. 深度学习和模型优化:通过深度学习技术,不断优化ASR模型,提高对不同口音、方言和专业术语的识别准确性。
  2. 噪声抑制技术:开发更先进的噪声抑制算法,以提高在各种环境下的识别效果。
  3. 多模态交互:结合视觉、触觉等多种感官输入,提供更丰富的交互体验。
  4. 跨语言能力:加强ASR模块的跨语言能力,使其能够更自然地处理多语言混合场景。

腾讯云的ASR技术不仅为企业提供了一种提升效率和便捷性的工具,更是企业迈向智能化、自动化转型的重要助力。随着技术的持续进步和应用场景的不断拓展,我们坚信ASR技术将激发企业创新活力,成为推动企业持续增长和市场竞争力提升的核心动力。