You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium项目中如何用指定音频文件替代麦克风输入?

在Selenium中模拟麦克风播放指定音频文件的解决方案

要实现让Selenium控制的浏览器调用麦克风时读取指定音频文件而非实时语音,最直接的方案是利用Chrome浏览器的内置模拟参数,以下是具体实现步骤:

1. 准备合规的音频文件

网站的语音识别服务通常要求音频为PCM 16位、单声道、16000Hz采样率的WAV文件。如果你的音频格式不符,可以用ffmpeg转换:

ffmpeg -i input.mp3 -acodec pcm_s16le -ar 16000 -ac 1 output.wav

2. 配置Chrome启动参数

通过ChromeOptions添加三个核心参数,强制浏览器使用假媒体设备并加载指定音频文件:

  • --use-fake-device-for-media-stream:启用假的音频/视频设备
  • --use-fake-ui-for-media-stream:自动跳过媒体权限请求弹窗
  • --use-file-for-fake-audio-capture:指定要模拟的音频文件绝对路径

3. 编写Selenium代码(Python示例)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

# 配置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--use-fake-device-for-media-stream")
chrome_options.add_argument("--use-fake-ui-for-media-stream")
# 替换为你的音频文件绝对路径
chrome_options.add_argument("--use-file-for-fake-audio-capture=/Users/yourname/audio/test.wav")

# 初始化驱动
driver = webdriver.Chrome(options=chrome_options)

# 打开目标网站
driver.get("https://your-target-site.com")

# 触发网站的麦克风调用逻辑(根据实际页面元素调整)
mic_trigger = driver.find_element(By.CSS_SELECTOR, ".mic-button-class")
mic_trigger.click()

# 等待音频识别完成(按需调整等待时间)
driver.implicitly_wait(15)

# 后续业务操作...
# driver.quit()

注意事项

  • 音频文件必须用绝对路径,Windows系统路径需用C:/path/to/file.wav或C:\\path\\to\\file.wav
  • Firefox的模拟支持有限,无法直接指定音频文件,建议优先使用Chrome
  • 确保目标网站使用标准的MediaDevices.getUserMedia() API调用麦克风,否则可能无法适配
  • 若需切换音频文件,需重启浏览器实例,单实例内替换文件后需重新加载页面才会生效

内容的提问来源于stack exchange,提问作者Martin Lackington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:40:35