Appium 怎么用 Python 对 APP 实现自动语音输入

hardy · November 28, 2018 · Last by 子丑寅卯 replied at October 31, 2023 · 2859 hits

项目中的 APP,有个 AI 对话功能,其中有语音输入,目前测试语音是利用人工对着说测试,有没有方法利用 Python 自动把录好的录音文件传输给手机的麦克风,让其自动拾音。请各位大佬支支招。

共收到 20 条回复 时间 点赞

换个方式,将电脑音频线路连接手机麦克风线路,主播们不都这么搞嘛~

以前用 uiautomator2 实现过一版本,因为是安卓工程,直接用了 MediaPlayer 播放本地录好的音频文件

chan 回复

你在电脑上播报音频文件,怎么传到手机上?难道是靠电脑外音,让手机麦克风自动拾音吗?

YueChen 回复

怎么操作的

hardy 回复

两部分嘛:1.语音获取,不管你是自己录的还是找工具自动生成的,把生成的 mp3 文件放入工程的 assets 目录 2.uiautomator2 本来就是个安卓工程,MediaPlayer 调用文件播放不就行了

chan 回复

这个是不是有冲突,调用 MediaPlayer 的时候会占用音频线程?另外,我们助手的语音按钮,点击录音的时候也是调用安卓的录音线程。请问大神,能给个具体的示例吗?

chan 回复

另外,忘记说了,我是使用 Python 版的 appium

hardy 回复

上面那个说冲突的,看你调用时机,我不太清楚 appium 是否能实现这个。最开始我用 uiautomator2 也是实现了一个手机喇叭出声音,然后 app 识别的自动化场景

chan 回复

因为点击录音按钮的时候,已经开始占用音频资源了,这个时候手机无法再播放声音了

hardy 回复

点击录音按钮是调用手机 Record,而 MidiaPlayer 是调用手机 Speaker,这两个不冲突

hardy #11 · December 05, 2018 Author
回复

请问一下,Python 的 appium 怎么调用 mediaplayer 来播放音频文件

hardy 回复

其实楼上都已经给出答案了:(1)将 appium 换成 uiautomator2;(2)继续用 appium 的话,按 1 层提供(改造手机)的解决办法,社区有现成的帖子:https://testerhome.com/topics/7583

hardy #13 · December 05, 2018 Author
回复

你好,请问一下 uiautomator2 是哪个方法可以实现播放音频文件?

安卓做语音测试挺简单,sendevent+stagefright,sendevent 负责做指定位置的按下抬起,stagefright 负责按下抬起之间播放 wav/mp3 样本。

hardy #15 · December 06, 2018 Author

已经实现了语音输入,谢谢各位的解答

Author only
hardy #17 · January 24, 2019 Author
yujie 回复

给你说下思路,这里面使用 2 个线程,一个是录音线程,一个是播放线程,调用录音线程的时候也要调用播放线程,2 个线程同时进行就可以

hardy 回复

谢谢 hardy☕

hardy 回复

请问大佬是使用什么框架实现的,iOS 机型支持吗?

一般情况下是多台测试机进行测试 (多台样本),辅助机播报,如何隔绝相互干扰

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up