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

如何通过ADB命令实现Android设备语音播报?现有命令无效求解

ADB命令实现Android语音播报的可行方案

原命令失效的核心原因是com.android.intent.action.TTS_SPEAK并非Android系统标准全局广播Action,不同版本、厂商的系统可能没有对应的广播接收器。以下是两种可靠的实现方式:

方法一:直接调用系统TTS服务接口

通过service call命令调用TextToSpeech服务的核心方法,兼容性覆盖多数Android版本:

Android 4.1.x(API 16)

adb shell service call text_to_speech 2 i32 0 s16 "你好,这是语音测试" s16 "zh" i32 0 i32 0

参数解析:

  • 2:对应TextToSpeech.speak()方法的调用索引(API 16中固定为2)
  • i32 0:设置播放模式为QUEUE_FLUSH(立即播放,清空现有队列)
  • s16 "文本内容":指定要播报的文字
  • s16 "zh":语言代码(中文用zh,英文用en)
  • 末尾两个i32 0:默认合成参数,无需修改

Android 10+(含Android 14)

adb shell service call text_to_speech 3 i32 0 s16 "Hello, this is a voice test" s16 "en" i32 0 i32 0 i32 0

注:API升级后TextToSpeech服务的方法索引调整为3,需多传入一个默认参数i32 0。

方法二:调用Google Text-to-Speech专属广播

若设备安装并启用了Google Text-to-Speech引擎,使用以下广播命令兼容性更佳:

adb shell am broadcast -a com.google.android.tts.engine.SPEAK --es "utteranceId" "tts_test" --es "text" "测试语音播报" --es "language" "zh" --es "country" "CN" --ei "queueMode" 0

参数解析:

  • com.google.android.tts.engine.SPEAK:Google TTS引擎监听的专属广播Action
  • --es "utteranceId":自定义本次播报的唯一标识
  • --ei "queueMode" 0:设置为立即播放模式

前置检查

  • 确保设备已安装至少一个TTS引擎(系统自带或Google Text-to-Speech)
  • 首次使用需在系统设置中完成TTS引擎的初始化(选择默认引擎、下载对应语言的语音包)
  • 若音量异常,可通过adb shell media volume --set 10 --stream 3调整媒体音量(范围0-15,--stream 3对应媒体流)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:17:34