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领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字音乐…...

【个人同步与备份】电脑(Windows)与手机/平板(Android)之间文件同步
文章目录 1. syncthing软件下载2. syncthing的使用2.1. 添加设备2.1.1. syncthing具备设备发现功能,因此安装好软件,只需确认设备信息是否对应即可2.1.2. 如果没有发现到,可以通过设备ID连接2.1.3. 设置GUI身份验证用户,让无关设备…...

代码随想录算法训练营第46期Day37,38,39,41
这几天晚上看比赛,就把刷题耽误了。还好是开新章节,前面的题都比较简单。 然后周天做完了又忘记发了 动态规划 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数 Day37前两道题太简单…...

点跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换
点目标跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换 读论文RAFT密集光流跟踪的笔记 RAFT是一种新的光流深度网络结构,由于需要基于点去做目标的跟踪,因此也是阅读了像素级别跟踪的一篇ECCV 2020的经典…...

jmeter学习(6)逻辑控制器-循环
循环执行 1、循环读取csv文件的值 2、foreach 读取变量,变量数字后缀有序递增,通过counter实现 ${__V(typeId${typeIdNum})} beansell断言 String typeIdNum vars.get("typeIdNum"); String response prev.getResponseDataAsString(); …...

unity学习笔记-安装与部署
unity学习笔记-安装与部署 unity & visual studio下载unityvisual studio 创建工程项目内的布局介绍初始化项目各目录介绍1. 场景视图(Scene)2. 游戏视图(Game)3. 层次结构视图(Hierarchy)4. 检查器视图…...

Django+MySQL接口开发完全指南
前言 本文将详细介绍如何使用Django结合MySQL数据库开发RESTful API接口。我们将从环境搭建开始,一步步实现一个完整的接口项目。 环境准备 首先需要安装以下组件: Python 3.8Django 4.2MySQL 8.0mysqlclientdjangorestframework 安装命令 # 创建虚…...

CentOS7上下载安装 Docker Compose
Docker Compose简要介绍(想直接看安装步骤的请跳转到[必要的安装步骤]) Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具,它可以通过一个简单的 YAML 文件(docker-compose.yml)来配置应用程序的服务、网…...

虚拟机的 NAT 模式 或 Bridged 模式能够被外界IPping通
如果虚拟机使用的是 NAT 模式 或 Bridged 模式,通常可以让外部网络(例如互联网)访问虚拟机。NAT 和 Bridged 模式的不同之处在于它们如何将虚拟机连接到宿主机和外部网络。以下是这两种模式的详细说明: 1. NAT 模式 在 NAT 模式…...

C# 使用Dll的几种方法举例
使用 DLL(动态链接库)是 C# 开发中常见的任务之一。DLL 文件包含可以在运行时加载的代码和数据,允许程序共享功能和资源,降低程序的内存占用并促进代码的复用。本篇文章将深入探讨 C# 中使用 DLL 的多种方法,并提供相关…...

什么是不同类型的微服务测试?
大家好,我是锋哥。今天分享关于【什么是不同类型的微服务测试?】面试题?希望对大家有帮助; 什么是不同类型的微服务测试? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…...