# 语音唤醒异常问题分析 ## 概述 本文档记录从日志文件推断ADB命令的分析流程,用于语音唤醒异常问题的排查。 --- ## 分析案例 ### 输入:log 录音分析.md **文件特征:** - 文件大小:578KB - 行数:9001行 - 无直接adb命令记录 ### 分析步骤 #### 1. 查看文件开头内容 ```text pid: 3211 pid: 3294 ... Output thread 0xf2164c184c40, name AudioOut_D, tid 3103, type 0 (MIXER): I/O handle: 13 Sample rate: 48000 Hz HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT) Channel count: 8 ... ``` #### 2. 识别日志类型 根据关键内容特征判断: | 特征 | 内容示例 | 判断 | |------|----------|------| | 线程信息 | Output thread, Input thread | AudioFlinger dump | | 音频参数 | Sample rate, HAL format, Channel count | 音频系统状态 | | 设备信息 | AUDIO_DEVICE_OUT_BUS | 音频设备配置 | | 时间戳统计 | Timestamp stats, jitterMs | 性能数据 | **结论:** 这是一份 AudioFlinger 服务 dump 日志 #### 3. 推断ADB命令 根据日志类型推断: | 日志类型 | 推断命令 | | ----------------- | --------------------------------------- | | AudioFlinger dump | `adb shell dumpsys media.audio_flinger` | | AudioPolicy dump | `adb shell dumpsys media.audio_policy` | | 完整音频状态 | `adb shell dumpsys audio` | --- ## 常见音频Dump命令汇总 | 命令 | 说明 | 应用场景 | | --------------------------------------- | ---------------- | --------- | | `adb shell dumpsys media.audio_flinger` | AudioFlinger服务状态 | 录音/播放问题排查 | | `adb shell dumpsys media.audio_policy` | 音频策略服务状态 | 设备切换问题排查 | | `adb shell dumpsys audio` | 完整音频系统状态 | 全面音频问题排查 | | `adb shell dumpsys media.camera` | 摄像头服务状态 | 摄像头问题排查 | --- ## AudioFlinger Dump关键字解读 ### Output Thread(输出线程) | 字段 | 说明 | |------|------| | Sample rate | 采样率(如48000Hz) | | HAL format | 硬件音频格式(PCM_16_BIT) | | Channel count | 通道数 | | Channel mask | 通道掩码 | | Output device | 输出设备(如AUDIO_DEVICE_OUT_BUS) | | Frames written | 已写入帧数 | ### Input Thread(输入线程) | 字段 | 说明 | |------|------| | Audio source | 音频源(如AUDIO_SOURCE_MIC) | | Input device | 输入设备 | | Frames read | 已读取帧数 | ### Timestamp Stats(时间戳统计) | 字段 | 说明 | |------|------| | jitterMs | 抖动(毫秒) | | localSR | 本地采样率 | | err | 错误计数 | --- ## 问题排查流程 ### 语音唤醒异常排查步骤 1. **开启录音保存** ```bash setprop persist.pcm.dump 9 ``` 2. **触发语音唤醒** - 讲话唤醒同行者 - 可多次尝试 3. **获取音频系统状态** ```bash adb shell dumpsys media.audio_flinger > audio_flinger.log adb shell dumpsys audio > audio.log ``` 4. **关闭录音保存** ```bash setprop persist.pcm.dump 0 ``` 5. **提取录音文件** ```bash adb pull /data/misc/audioserver/dump_audio_9.pcm ``` ### 分析要点 | 问题类型 | 检查内容 | |----------|----------| | 无法唤醒 | Input thread状态、Frames read计数 | | 声音异常 | jitterMs抖动、err错误计数 | | 设备问题 | Input/Output device配置 | | 格式问题 | HAL format、Sample rate | --- ## 从日志推断命令的方法总结 ### 判断流程 ``` 1. 查看文件开头内容 ↓ 2. 识别关键特征字段 ↓ 3. 对照常见dump格式 ↓ 4. 推断具体adb命令 ``` ### 特征对照表 | 日志特征 | 对应命令 | |----------|----------| | Output/Input thread | dumpsys media.audio_flinger | | AudioPolicy相关 | dumpsys media.audio_policy | | ActivityManager | dumpsys activity | | PackageManager | dumpsys package | | SurfaceFlinger | dumpsys SurfaceFlinger | --- ## 参考文件 - [[项目文档/徐工/log 录音分析.md]] - 原始日志文件 - [[项目文档/徐工/语音.md]] - 语音模块开发文档 --- *文档整理日期: 2026-05-27*