AI语音模型在家宽业务中的应用
在运营商家宽业务支撑场景中,存在多个APP和系统需要与装维人员交互,传统的功能按钮点击型操作交互界面,越来越难以满足装维人员工作提效的迫切需求。家宽施工调度系统所需的AI语音能力主要包括ASR(音转字)和TTS(字转音)。主要有以下几点诉求:高效的语音转录、语音角色分离、生动的语音合成。
针对工业语音应用的单一化,AI语音模型还应该可以通过微调的方式定制属于自己的语言类别,比如各个地市的方言。
01 技术选型
目前市面上开源的语言模型有很多,比较著名的有OpenAI提供的Whisper模型,Facebook AI 提出的wav2vec 2.0模型,FunAudioLLM的SenseVoice语音识别模型和CosyVoice语音合成模型,还有阿里达摩院开源的大型端到端语音识别框架FunASR。基于业务的技术能力需求,结合市面上的多个语言模型各自的特点,在保证语音识别质量的前提下,推理速度更快的FunASR更为适合。
FunASR语音识别框架提供多种功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、说话人分离和多人对话语音识别等。TTS模型选择有着出色音色复制功能的CosyVoice模型,实测发现在使用预训练模型推理时,CosyVoice有着良好的性能表现。
02 原理介绍
FunASR技术原理介绍
独特亮点:强大功能与易用性的完美结合
1.工业级模型: 基于超过60,000小时的中文数据和50,000小时的英文数据进行训练,确保提供卓越的识别精度。
2.实时与非实时解决方案:支持非实时的精准识别与实时应用场景的快速响应,满足多样化需求。
3.模块化架构设计:用户可以根据具体需求灵活选择和定制模块,如集成VAD、PUNC模型,从而提升应用的整体功能。
原理浅析:高效算法与灵活扩展性的无缝融合
工具包的核心模型是Paraformer,这是一种高效的非自回归端到端语音识别模型,模型结构如下图所示。

来源于Modelscope Paraformer
CosyVoice技术原理介绍
传统到革新:语音合成技术的演变
传统的TTS技术依赖于大量录音数据和复杂的特征工程,而CosyVoice另辟蹊径,它是基于大型语言模型(LLM)和监督语义令牌来生成语音,这些令牌与传统的无监督学习得到的令牌不同,它们能够更准确地捕捉到语义信息,并与文本对齐。模型结构图如下:

来源于Modelscope CosyVoice
核心亮点:开启零样本语音合成的全新时代
1.CosyVoice-300M:基座模型,仅仅需要3至10秒的原始音频就可以生成音色克隆,甚至涵盖韵律、情感等细微的方面,包括跨语种语音的生成。
2.CosyVoice-300M-SFT:微调版本,经过专门的数据集微调以提高特定任务或领域的语音生成质量。
3.CosyVoice-300M-Instruct:支持细粒度控制,包括对说话人身份、说话风格(情绪、性别、语速和音高)以及精细的副语言特征,这些特征包括插入笑声、呼吸、以及强调某些词语的能力。
03 应用实战
语音模型应用场景
语音识别(ASR)和语音合成(TTS)技术广泛应用在运营商装维方向,使得人机交互更加便捷,提升了工作效率,改善客户服务。

智能综调语音技术应用场景
1.语音客服系统: 通过ASR实时将用户的语音问题转化为文字,结合自然语言处理(NLP)技术进行问题分类,TTS则用于将系统的应答结果转化为语音反馈给用户。语音客服系统能够自动处理常见问题,减少人工客服的负担。
2.故障诊断: 装维人员可以通过语音描述故障现象,ASR自动转录为文字并录入系统;系统可以利用文本分析和历史故障数据进行初步诊断,给出故障排查建议。
3.工单语音录入:装维人员可以通过语音快速录入工单信息,ASR将其转化为结构化的文字内容,录入工单管理系统。可以包括设备状态、故障现象、修复措施等内容。
4.智能综调助手:用户除了输入文字给助手,可以直接语音录入,ASR模型将语音转为文字后转入下一个流程进行意图识别。
5.智能质检:人工客服处理改约审核时快速的从录音转文字中获取人员对话信息。
应用思路
在实际使用中,为了提高Paraformer模型的预测性能,会在标准的Paraformer基础上增加了语音活动检测和时间戳预测模型。语音活动检测采用基于前馈时序记忆网络FSMN-VAD模型,它能够检测有效语音的起始和结束。为了提升ASR模型转录后文本的可读性,会对文本进行后处理,包括添加标点符号和去除语音不流畅性,采用的是FunASR提供的CT-Transformer模型,它能够在保证性能的同时利用快速解码策略来最小化延迟。
最终完整的FunASR语音识别模型处理流程如下图所示:

在业务受理流程中,采用大小模型结合,多模态受理的方法。比较典型的是在智能综调助手应用中,语音识别技术作为强有力的辅助工具,提高了产品的人机交互能力和业务的整体运作效率。语音模型将客户语音需求转为文字,然后经过大小模型进行意图判断,匹配到适合场景的意图后进入到链式引擎调用指定的API接口,从而完成AI大模型在业务受理的智能化全过程。

大模型结合语音技术业务全流程
FunASR角色分离模型可用于智能质检板块。传统方式下人工客服在处理改约审核时,需要查看改约的图片以及录音,当录音较长时往往需要花费很多时间,FunASR角色分离模型不仅可以识别语音,还可以将多人对话区分,这样客服在审核时可以很快的了解到录音的内容,并准确定位到说话人。

使用FunASR对录音文件进行角色分离的示例过程
进阶动作:训练与微调
模型训练:个性化定制自己的语音模型
为了提升语音模型对地方方言的识别效果,需要对模型进行微调训练。FunASR官方提供简便的模型训练脚本,我们需要提前准备数据集并将数据集转换为特定的格式以满足模型输入。FunASR模型训练数据集的jsonl的格式如下图所示:

因为语音数据很多都长短不一,为了充分利用计算资源又防止出现OOM,每一批样本大小的选择根据实际情况指定单张GPU上可以处理的最大帧数即token值,训练批次根据数据集情况而定,其它的训练参数保持默认即可,可以通过tensorboard可视化查看训练过程,如图所示:

FunASR个性化语音训练过程
训练前后效果对比:

可以看出模型训练后对一些名词的识别准确了很多,比如微调前“移动”被识别为“一中”,“五金院里”识别为“五金专件”,“打电话”识别为“大厅”,“路金湾”识别为“如今园”等。
04 AI语音模型的挑战
1.多语言多方言识别:在利用语音模型进行多方言训练时,音频数据大多来源于装维人员与客户的通话录音,文本标注都是线下人员手动录入,往往面临训练数据稀缺和数据采集错误的问题,这直接影响了模型的训练效果,导致模型在处理方言时准确性较低。后续对于数据集的收集,尝试通过在互联网上对一些公开的地方方言视频进行语音文字的抓取,然后通过后期整理,优化数据。
2.背景噪音与环境因素:在嘈杂的环境中,语音识别的准确率通常会下降,背景噪音、回声、多人同时说话等因素都会干扰模型的判断,导致错误识别,可以尝试采用一些传统的降噪技术比如利用python中的scipy 库,让语音通过低通滤波器进行简单的降噪,然后再进行语音识别处理。
3.实时处理与低延迟需求:在实际业务需求中,为了不影响用户体验,需要语音模型有较高的推理速度,这对模型的计算效率和资源优化提出了较高的要求。除了硬件方面的提升,还可以在模型初步加载语音时,采用异步的方式对语音文件进行切片,然后再送入模型推理,使其在多并发情况下也能保持良好的推理速度。
4.情感与语义理解:仅仅识别语音中的文字内容并不足够,很多场景还需要语音模型能够理解说话者的情感和语义。例如,客服场景中,系统需要感知用户是否处于焦虑、愤怒等情绪,以作出合适的回应。
未来,随着数据规模的增长与计算资源的增强,AI语音模型有望继续突破瓶颈,带来更加自然和高效的语音交互体验。期待在这一领域中,更多创新的出现,助力各行各业迈向智能化的新时代。
相关文章:
AI语音模型在家宽业务中的应用
在运营商家宽业务支撑场景中,存在多个APP和系统需要与装维人员交互,传统的功能按钮点击型操作交互界面,越来越难以满足装维人员工作提效的迫切需求。家宽施工调度系统所需的AI语音能力主要包括ASR(音转字)和TTS&#x…...
零七生活API-文字转语音API使用示例
//官网地址:零七生活API - 提供免费接口调用平台function getAud(){axios({method: get,url: https://api.oick.cn/api/txt?text你好&spd5&apikeyyourApikey,responseType: blob, // 确保 axios 处理为二进制数据}).then((response) > {// 将 Blob 转换…...
rpc的客户端为什么称为stub
1.client为什么是stub Stub 在分布式系统中是一种 代理对象(Proxy Object),它本质上是一个在本地系统中扮演远程服务角色的代理。 在早期的 RPC 术语中,客户端端叫做 Stub,而服务器端的处理部分叫做 Skeleton。这种对…...
RHCE--nginx实现多IP访问多网站
方法一:nmtui 1.目录挂载 2.下载nginx 3.关闭防火墙 4.在一个网卡创建多个虚拟地址 1. 2. 3. 方法二:nmcil 1.手动配置 2.如图所示重新连接后创建ip成功 3.创建目录以及写入 结果...
TikTok运营对IP有什么要求?
TikTok在进行直播带货时,网络环境的配置尤为关键,网络质量直接影响到直播效果,因此选择稳定的IP地址很重要。那么,TikTok直播时该选择什么样的IP地址呢?接下来,我们来深入分析一下。 TikTok对IP地址的要求 …...
大白话讲解:多模态大模型综述,通俗易懂!
多模态大型语言模型(Multimodal Large Language Models, MLLM)的出现是建立在大型语言模型(Large Language Models, LLM)和大型视觉模型(Large Vision Models, LVM)领域不…...
大数据-184 Elasticsearch - 原理剖析 - DocValues 机制原理 压缩与禁用
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
Java设计模式:工厂模式详解
引言 1. 工厂模式的定义 2. 工厂模式的类型 2.1 简单工厂模式 2.1.1 结构 2.1.2 示例代码 2.2 工厂方法模式 2.2.1 结构 2.2.2 示例代码 2.3 抽象工厂模式 2.3.1 结构 2.3.2 示例代码 3. 工厂模式的优点 4. 工厂模式的缺点 5. 实际应用场景 6. 总结 引言 工厂模…...
《Python游戏编程入门》注-第3章1
《Python游戏编程入门》的第三章是“I/O、数据和字体:Trivia游戏”,介绍了print()函数、input()函数、异常处理以及文件的输入输出,最后根据以上内容完成了Trivia游戏。 本章的“3.1 了解Trivia游戏”介绍了Trivia游戏的界面和玩法。“3.2 P…...
Java爬虫:获取数据的入门详解
在数字化时代,数据已成为最宝贵的资产之一。无论是市场研究、客户洞察还是产品开发,获取大量数据并从中提取有价值的信息变得至关重要。Java,作为一种成熟且功能强大的编程语言,为编写爬虫提供了强大的支持。Java爬虫可以帮助我们…...
GAMES104:17 游戏引擎的玩法系统:高级AI-学习笔记
文章目录 课前QA一,层次任务网络(Hierarchical Tasks Network,HTN)1.1 HTN Framework1.2 HTN Task Types1.2.1 Primitive Task基本任务1.2.2 Compound Task符合任务 1.3 Planning1.4 Replan1.5 总结 二,目标导向行为规…...
【Unity】Unity中获取网络时间进行每日和每月刷新
直接上代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class DateChecker : MonoBehaviour {private DateTime lastCheckedDate; //上次刷新日数据的日期private DateTime lastMonthUtc; //上次刷新月数据的日期T…...
微信小程序上传组件封装uploadHelper2.0使用整理
一、uploadHelper2.0使用步骤说明 uploadHelper.js ---上传代码封装库 cos-wx-sdk-v5.min.js---腾讯云,对象存储封装库 第一步,下载组件代码,放置到自己的小程序项目中 第二步、 创建上传对象,执行选择图片/视频 var _this th…...
力扣每日打卡挑战 3184. 构成整天的下标对数目 I
给你一个整数数组 hours,表示以 小时 为单位的时间,返回一个整数,表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如,1 天是 24 小时,…...
The First:Starknet如何让以太坊更快更安全?
随着区块链技术需求的持续增长,当前技术在可扩展性和隐私保护方面的局限性愈发凸显,以太坊网络便是其中的典型代表。为有效应对这些挑战,第二层扩展解决方案的重要性日益凸显。这些方案旨在将部分交易处理转移至以太坊主链之外,以…...
【计算机网络 - 基础问题】每日 3 题(五十三)
✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…...
便携式移动消防炮:灵活灭火新选择
在当今快速发展的社会中,火灾安全问题一直是公众安全的重要组成部分。无论是家庭、办公场所还是大型工业区,火灾的发生都可能带来不可预测的巨大损失,传统消防固定系统往往无法迅速适应多变的火场环境,特别是对于那些发生在高层建…...
18.VScode写Java项目的教程
VScode写Java项目的教程 1.首先必选先安装Java解释器2.安装插件Java Extension Pack3.创建项目创建项目结构选择项目类型 4.测试结果源码内容 今天用一台老式笔记本写代码,IDEA跑不动就准备用VScode突然间就蒙了,怎么创建项目啊?于是就有了这…...
本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程
系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台,旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能,支持用户自由发帖、浏览和搜索各类信息,如二手交易、求职招聘、房屋租售、生活服务、商家…...
Java项目实战II基于微信小程序的原创音乐平台{UNIAPP+SSM+MySQL+Vue}(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字音乐…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
