语音转换微信语音转换文字不准确怎么办办也就是说不能正确识别。

在里我曾使用讯飞iOS SDK完成了将微信语音转化为文字的功能。在 说,微信本身就提供了长按语音转文字的功能而我在前期研究微信时并没有发现这个功能。经过一番调研发现只有当系统语言为中文时,微信才会开放这个功能而我一直使用的是英文系统,所以没看到过这个功能今天,我们就以这个功能为突破口摒弃讯飞SDK,采用微信自带的方案将语音全自动转换为文字。

开启英文版微信的语音转文字功能

这个过程我就不复述了核心代码是:

大家编译一个tweak安装一下,就可以在英文版微信里开启这个功能了?

照例我们先用Cycript,定位这个UIMenuItem停留在上图的界面中,然後用choose命令做一次小小的hack:

好了onVoiceTrans:就是我们的答案了。咱们grep一遍WeChat的头文件看看哪个类实现了这个方法:

看起来是VoiceMessageNodeView这个类。从类名上猜测這个类应该是语音信息view的类,在后面我们会验证这个猜测

可以看到很明显的2条分支,1条简单调用了

另1条的操作相对复杂。我们先从简單的入手看看

从不够完整的函数实现截图来看,showVoiceTransView做的基本都只是UI层面的操作;它们具体是什么呢等会再揭晓,我们先看另1条相对复杂嘚分支

查看else分支的实现细节

我们用ni单步跟一下这个函数,看看每一个objc_msgSend都是在干嘛:

only.”我们c一下即可看到:

好了,出现了一个WeChat自定义的彈框我们用Cycript看看,点击“OK”后会触发什么样的操作

找到点击弹框上“OK”按钮触发的操作

一般来说,弹框都不会出现在keyWindow上需要到其他嘚window里找寻它的踪迹;因此,我们依次检查各个window:

这段代码很容易还原它的核心操作是:

从函数及参数名来看,这段代码的功能貌似就是莋为语音转换的开关我们继续ni,看看还有没有其他玄机

respondsToSelector:@selector(onClickTipsBtn:Index:)]的返回值为NO,所以这一大段分析得出的核心代码,就是上面提取出的这段苴它的功能,就是开启微信语音转换功能的开关这段代码怎么使用呢?我们只需要在微信第一次启动时调用这段代码就可以开启微信嘚语音转换功能了。
开启了语音转换之后我们取得了阶段性胜利。但是下一个问题来了哪段代码是负责实际转换操作的呢?这才是我們的重中之重

找到语音转换操作的核心代码

还挺复杂。咱们动态跟跟看:

我省略了一些明显是UI层的操作留下了上面这些objc_msgSend。我们回顾一丅微信语音转文字时的UI效果:当我们点击“Convert to Text”之后新的界面上出现“converting…”的字样,等待几秒钟转换好的文字就会出现在界面上。这说奣微信可能是先把显示文字的UI给画出来,以“converting…”提示用户等待同时开一个另一个线程去转换语音,待语音转换完毕后再把文字给显礻在UI上结合我们的猜测,上面的一系列objc_msgSend中最可疑的无疑是[VoiceTransFloatPreview

看起来只是一个普通的setter,没有什么特别的地方继续下一目标。

在一系列的函数中[r4 onStartGet]引起了我的注意,它是除IdleTimerUtil外唯一没有出现UI字眼的函数;我们看看它的实现。

等可疑函数尽收眼底等待检阅。对于这个类的调研就留作练习,交给正在阅读此帖的你来完成吧~!

微信的语音识别技术想必不会比讯飞强大仅论语音识别配置的精细度来说,讯飞就偠专业很多但是,如果我们的需求仅仅是简单的语音识别没有太多定制化的需求,那么打包讯飞SDK之后的dylib会比采用微信原生语音转换的dylib夶5M左右跟我在提到的思路一脉相承——我们的dylib存活在别人的进程里,相当于是我们去其他人家做客不给别人添麻烦是基本的教养和礼貌,能够节省5+M内存是一种尊重他人劳动成果的体现,更是我们自我要求精益求精的缩影工程师的素养体现在一点一滴中,见微知著財能成就大业;祝愿大家都能持续进步,再攀高峰?

  新版又推出了语音转换文字嘚加强版新功能可以在语音输入完成后快速转换成文字发送出去,一键操作自己方便语音输入,对面也不用再面对一大串长长的语音现在还支持粤语和英语。那么微信语音新功能该怎么使用呢让小编来介绍一下语音转文字的新功能吧。

  输入完语音按住屏幕上滑,左滑是取消发送右滑则是转文字,可以自由切换

  经过实测语音识别速度快又准,就连广普都能准确识别这个转文字和语音輸入一样,支持普通话、粤语和英语

  经过小编的介绍大家应该也都清楚了该怎么使用微信语音新功能来快速语音转换成文字。不过洳果你说了一些不文明的词微信识别出来后会自动去掉敏感词,这并不代表识别不准确

必须保留本网注明的作品来源吔是如此,

用户在使用微信发送语音时,只有部分微信用户才有哦支持中文和英语直接转换哦~而且识别率还很高~ 此功能之前在安卓的測试版中曾出现过,后续应该会全面开放 近日。

其他媒体、网站或个人从本网转载时

违反者本网将追究相关法律责任,转载请必须注奣中滑动到转文字,即使是升到最新版 具体操作方法:打开聊天窗口--按住语音键说你想说的话--说完手指上滑就可以看到“转文字”的選项,微信版本虽然没有更新近期忽然后iOS版的微信上重现,这一功能并不是所有用户都有的不承担此类作品侵权行为的直接责任及连帶责任,不过后来正式版更新后这个功能的消失了 本网转载并注明自其它来源的作品,不过版权均属于中,并不代表本网赞同其观点戓证实其内容的真实性并自负版权等法律责任,

即可将语音直接转化为文字,经小编测试发现 (来源:未知) 上一篇:“乔碧萝殿下”等59名主播被列入黑名单 封禁5年 下一篇:公共数字文化展国图开展 机器人“小图”迎宾讲解 凡本网注明"来源:的所有作品,可直接将语音转為文字发送给对方但是却又偷偷上线了一个新功能--“语音转文字”,目的在于传递更多信息 。

我要回帖

更多关于 微信语音转换文字不准确怎么办 的文章

 

随机推荐