手机打电话时如何将通话对方的声音在手机上识别成文字

news2025/5/18 5:41:48

手机打电话时如何将通话对方的声音在手机上识别成文字

--本地AI电话机器人

上一篇:手机打电话时由对方DTMF响应切换多级IVR语音应答(一)

下一篇:手机打电话时由对方DTMF响应切换多级IVR语音应答(二)


  • 一、前言

本篇章的内容采用阿里的FunASR的模型和运算库,采用纯离线的方式(模型库下载完毕并加载后,可以完全关闭Wifi和4G后再识别),进行手机本地的ASR(语音转文字)识别。

由于本次只选用FunASR的离线部分的模型库,App初次加载ASR时,会从服务器单独下载8.15M的armeabi平台的so动态库,以及208M的asr_offline与vad的模型文件。存放与手机本地sdcard中,供App进行加载和使用。

其实这个功能在2023年11月的时候已经在“智能拨号器App”中简单的调试了出来,效果也算勉强能看一看。但真正要达到商用的效果,还是得专项针对性的优化一番。在该App中的识别效果如下:

(由于FunASR的标点符号模型高达1.5G,太大了,此处不加载标点符号的模型)

智能拨号器App:http://120.78.211.195:8060/Dialer.apk

拨号器SDK示例app:http://120.78.211.195:8060/sdk/SdkDemo.apk

USB蓝牙配件购买路径(参考):https://item.taobao.com/item.htm?_u=pk10l4ccbcd&id=649368472986

  • 二、目前业界的ASR识别的主流方向

业界内通常采用“端+云”的模式进行语音识别模块的运算,即:本地ASR通常采用轻量级的语音识别模型,能够处理简单的语音指令(如唤醒词、开灯/关灯等);而对于复杂的语音指令,则将语音信号上传至云端进行处理。

如下图的“车载语音的ASR识别”中,就将车载设备上接收到的语音数据,拆分为“本地ASR”和“云端ASR”两个部分。并将两个识别的结果已经对应的响应结果合并后,通过TTS模块进行语音的应答。

相关的“端+云”架构模式,可以参考下图:

(图片来源:

《车载语音系统(VOS)的架构与技术实现》

车载语音系统(VOS)的架构与技术实现 )

在一个典型的“智能客服系统”的架构中,ASR识别引擎所处的架构大致为如下的位置:

(图片来源:

《基于FreeSWITCH和AI的热门应用场景技术分析报告》

基于FreeSWITCH和AI的热门应用场景技术分析报告 )

  • 三、ASR模型和库文件的加载

在SDK-Demo中,由于ASR识别使用的so动态库和模型库比较大,项目采用“动态加载”的方式,当界面中确实需要开启“通话对方声音转文字”的功能时,才主动从服务器拉取so库和ASR模型并进行加载。如下图所示:

(SDK-Demo的APK才4.3M,armeabi的so库就达8.15M,ASR仅离线模型就高达208M)

当界面中勾选对应的复选框后,App会判断是否之前已下载过该ASR模型库,若未下载则弹出【实时质检(ASR)开关】的提示框,由用户确认并手动下载对应的文件到手机本地SD卡。

用户确认开启后,将依次弹出两个异步的下载进度条框,依次下载【armeabi.zip】和【asr.zip】后并解压到SD卡的本地目录。供App做进一步的加载使用。如下图所示:

  • 四、ASR的麦克风识别

App中,模型和so库下载并解压完毕后,SDK将对其进行动态加载。加载完毕后界面显示【通话语音实时ASR转文字】的区域。

用户可点击区域右侧的【麦克风测试】按钮(点击了之后文字显示就变为“停止录音”),进行手机本地的麦克风语音采集并根据这个语音数据进行ASR识别。识别后会同步将识别结果显示在【通话语音实时ASR转文字】的列表区域。如下图所示:

我们简单的使用汉语,对着麦克风念了几句话,识别结果可以参看图中的列表的内容。

可以看出,准确率还可以,但没有标点符号,并且识别效率太低。说完话之后要4-6秒才会识别出对应的结果。当前现状根本没法用在实时的商用场景。

  • 五、ASR的电话通话识别

上一章讲述的是单上行通道(仅麦克风数据)的识别结果。我们简单的使用SDK-Demo的App,使用移动的手机卡来拨打10086和1008611这两个电话。

看看在App中“通话后播放IVR引导提示语”和“通话声音实时ASR转文字”的功能的识别和展示效果。如下图所示:

目前看来ASR的文字识别效果的准确率还可以。比如图片右侧的【136xxxxx110】号码,它说的话是在IVR中预先录制的“查话费/查流量/查余额”的语音。在识别过程中,ASR模型能够很好的识别我们往通话对方注入的语音,并转为文字进行展示。

通话列表左侧的10086和1008611返回的语音中,从文字内容来看,识别准确度应该还算可以,但有两点问题比较致命:

  1. 语音片段丢失,未被正常全部识别(估计可以通过加大缓冲区间来规避)
  2. 识别时效性太差,如上章所说,说一句话要4-6秒才会识别出结果,黄花菜都凉了。

  • 六、总结

我们尝试在蓝牙电话SDK中,引入一些跟AI方向相关的算法和能力。本篇章中,我们想突破传统的业内“端+云”的做法,想仅仅依靠端侧的算力(毕竟智能手机处理性能这么强,存储空间又大)来独立完成ASR语音转文字的功能。

目前从实践的结果来看,算法和模型库不给力啊。当前暂时没有发现能够直接移植到手机、且完全不依赖网络,并能够获得比较良好的ASR识别的算法和模型库。

后面有机会的话,还是要深入挖掘这个方向,或者实在不行就随大流,部署一套“云”ASR识别的模型库,看看识别效果、实时性等的差异,进行整体对比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2378272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重排序模型解读:gte-multilingual-reranker-base 首个GTE系列重排模型诞生

模型介绍 gte-multilingual-reranker-base 模型是 GTE 模型系列中的第一个 reranker 模型,由阿里巴巴团队开发。 模型特征: Model Size: 306MMax Input Tokens: 8192 benchmark 关键属性: 高性能:与类似大小的 reranker 模型…

【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2

文章目录 一、前述二、不同的先验及代表性论文2.1 几何先验(Geometric Prior)2.2 生成式先验(Generative Prior)2.3 codebook先验(Vector Quantized Codebook Prior)2.4 扩散先验 (Diffusion Pr…

无监督学习在医疗AI领域的前沿:多模态整合、疾病亚型发现与异常检测

引言 人工智能技术在医疗领域的应用正经历着从辅助决策向深度赋能的转变。无监督学习作为人工智能的核心范式之一,因其无需大量标注数据、能够自动发现数据内在规律的特性,在医疗AI领域展现出独特优势。尤其在2025年,无监督学习技术在医疗AI应用中呈现出多模态整合、疾病亚…

计算机操作系统概要

不谋万世者,不⾜谋⼀时。不谋全局者 ,足谋⼀域 。 ——陈澹然《寤⾔》《迁都建藩议》 操作系统 一.对文件简单操作的常用基础指令 ls ls 选项 目录或⽂件名:罗列当前⽬录下的⽂件 -l:以长格式显示⽂件和⽬录的详细信息 -a 或 --all&…

图片通过滑块小图切换大图放大镜效果显示(Vue3)

图片通过滑块小图切换大图放大镜效果显示 实现目标: 显示一组图片列表,鼠标进入小图记录当下小图下标,通过小图下标在数组中对应图片显示到大图位置; 鼠标进入大图位置时,带动滑块移动,并将放大两倍的大图…

[SSL]1Panel添加阿里云DNS账户

1 创建一个子用户 将得到的key和secret贴到1panel的DNS账户配置中 添加权限 即可用DNS账号申请SSL证书

计算机网络 : 网络基础

计算机网络 : 网络基础 目录 计算机网络 : 网络基础引言1. 网络发展背景2. 初始协议2.1 初始协议2.2 协议分层2.2.1 软件分层的好处2.2.2 OSI七层模型2.2.3 TCP/IP五层(四层)模型 2.3 TCP/IP协议2.3.1TCP/IP协议与操作系统的关系&…

C++跨平台开发:突破不同平台的技术密码

Windows 平台开发经验 开发环境搭建 在 Windows 平台进行 C 开发,最常用的集成开发环境(IDE)是 Visual Studio。你可以从Visual Studio 官网下载安装包,根据安装向导进行安装。安装时,在 “工作负载” 界面中&#xff…

第一次做逆向

题目来源:ctf.show 1、下载附件,发现一个exe和一个txt文件 看看病毒加没加壳,发现没加那就直接放IDA 放到IDA找到main主函数,按F5反编译工具就把他还原成类似C语言的代码 然后我们看逻辑,将flag.txt文件的内容进行加…

【Linux网络】传输层协议TCP

TCP协议 TCP全称为"传输控制协议(TransmissionControl Protocol"). 人如其名, 要对数据的传输进行一个详细的控制; TCP协议段格式 源、目的端口号:表示数据从哪个进程来,到哪个进程去。 32位序号、确认序号 4位TCP报头长度:表示该TCP头部有…

AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航

作者:Yifei Su, Dong An, Kehan Chen, Weichen Yu, Baiyang Ning, Yonggen Ling, Yan Huang, Liang Wang 单位:中国科学院大学人工智能学院,中科院自动化研究所模式识别与智能系统实验室,穆罕默德本扎耶德人工智能大学&#xff0…

排序算法之基础排序:冒泡,选择,插入排序详解

排序算法之基础排序:冒泡、选择、插入排序详解 前言一、冒泡排序(Bubble Sort)1.1 算法原理1.2 代码实现(Python)1.3 性能分析 二、选择排序(Selection Sort)2.1 算法原理2.2 代码实现&#xff…

Linux常用命令42——tar压缩和解压缩文件

在使用Linux或macOS日常开发中,熟悉一些基本的命令有助于提高工作效率,tar 是 Linux 和 Unix 系统中用于归档文件和目录的强大命令行工具。tar 名字来自 "tape archive"(磁带归档),最初用于将文件打包到磁带…

网络协议分析 实验七 FTP、HTTP、DHCP

文章目录 实验7.1 FTP协议练习二 使用浏览器登入FTP练习三 在窗口模式下,上传/下传数据文件实验7.2 HTTP(Hyper Text Transfer Protocol)练习二 页面提交练习三 访问比较复杂的主页实验7.3 DHCP(Dynamic Host Configuration Protocol) 实验7.1 FTP协议 dir LIST&…

HTML 表格与div深度解析区别及常见误区

一、HTML<div>元素详解 <div>是HTML中最基本的块级容器元素&#xff0c;本身没有语义&#xff0c;主要用于组织和布局页面内容。以下是其核心用法&#xff1a; 1. 基础结构与特性 <div><!-内部可包含任意HTML元素 --><h2>标题</h2><p…

linux-进程信号的产生

Linux中的进程信号&#xff08;signal&#xff09;是一种用于进程间通信或向进程传递异步事件通知的机制。信号是一种软中断&#xff0c;用于通知进程某个事件的发生&#xff0c;如错误、终止请求、计时器到期等。 1. 信号的基本概念 - 信号&#xff08;Signal&#xff09;&am…

内容中台重构企业知识管理路径

智能元数据驱动知识治理 现代企业知识管理的核心挑战在于海量非结构化数据的有效治理。通过智能元数据分类引擎&#xff0c;系统可自动识别文档属性并生成多维标签体系&#xff0c;例如将技术手册按产品版本、功能模块、适用场景进行动态标注。这种动态元数据框架不仅支持跨部…

基于Spring Boot+Layui构建企业级电子招投标系统实战指南

一、引言&#xff1a;重塑招投标管理新范式 在数字经济浪潮下&#xff0c;传统招投标模式面临效率低、透明度不足、流程冗长等痛点。本文将以Spring Boot技术生态为核心&#xff0c;融合Mybatis持久层框架、Redis高性能缓存及Layui前端解决方案&#xff0c;构建一个覆盖招标代理…

Kali安装详细图文安装教程(文章内附有镜像文件连接提供下载)

Kali镜像文件百度网盘&#xff1a;通过网盘分享的文件&#xff1a;kali-linux-2024.2-installer-amd64.iso 链接: https://pan.baidu.com/s/1MfCXi9KrFDqfyYPqK5nbKQ?pwdSTOP 提取码: STOP --来自百度网盘超级会员v5的分享 1.下载好镜像文件后&#xff0c;我们打开我们的VMwa…

2.4GHz无线芯片核心技术解析与典型应用

2.4G芯片作为工作在2.4GHz ISM频段的无线通信集成电路&#xff0c;主要面向短距离数据传输应用。这类芯片具有以下技术特点&#xff1a; 多协议支持 兼容蓝牙、Wi-Fi和ZigBee等主流协议 采用SDR技术实现协议灵活切换 适用于智能家居和物联网设备 低功耗特性 采用休眠唤醒和动态…