> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 启用音频

> 在 Qualcomm Linux 平台上配置音频硬件,并验证基本的播放和捕获用例。

本节介绍如何为麦克风和扬声器连接配置硬件,并给出验证基本音频用例的步骤。

## **硬件设置**

<Tabs>
  <Tab title="QCS6490">
    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=cd5f377bd80e68cccb513baaaf6fb376" alt="设置流程" width="954" height="269" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    **前提条件**

    * 按照 [Qualcomm Linux Build Guide](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/obtain-prebuilts) 中的说明设置您的基础环境
    * 将最新软件版本烧写到开发板。
    * 设置 SSH 连接:
      1. 在 Permissive 模式下启用 SSH。有关说明,请参阅[使用 SSH](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#use-ssh)。
      2. 通过运行以下命令连接到设备:
         ```text theme={null}
         ssh root@<device_IP_address>
         ```
         例如,如果设备的 IP 地址是 10.92.160.222,请运行以下命令:
         ```text theme={null}
         ssh root@10.92.160.222
         ```

    **设置音频硬件**

    1. 要激活开发板上的数字麦克风接口(DMIC),请将 DIP 开关 PIN 2 置于 ON 位置。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/dip_pin2_on.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=a2ef8da0ccab017e3a8ee54cb1412f6f" alt="设置流程" width="616" height="368" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/dip_pin2_on.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    2. 按如下方式将扬声器连接到开发板。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/connect_speakers_6490.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=e99313584379e2cf53422fcb60309b84" alt="设置流程" width="272" height="417" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/connect_speakers_6490.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>
  </Tab>

  <Tab title="IQ-9075">
    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=cd5f377bd80e68cccb513baaaf6fb376" alt="设置流程" width="954" height="269" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    **前提条件**

    * 按照 [Qualcomm Linux Build Guide](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/obtain-prebuilts) 中的说明设置您的基础环境
    * 将最新软件版本烧写到开发板。
    * 设置 SSH 连接:
      1. 在 Permissive 模式下启用 SSH。有关说明,请参阅[使用 SSH](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#use-ssh)
      2. 通过运行以下命令连接到设备:
         ```text theme={null}
         ssh root@<device_IP_address>
         ```
         例如,如果设备的 IP 地址是 10.92.160.222,请运行以下命令:
         ```text theme={null}
         ssh root@10.92.160.222
         ```

    **设置音频硬件**

    按如下方式将扬声器连接到开发板。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/connect-speakers-9075.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=beb65cacd87569f24a61ad3977464d7a" alt="设置流程" width="617" height="369" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/connect-speakers-9075.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    <Note>
      EVT 开发板需要进行硬件改造,音频功能才能正常工作。
    </Note>
  </Tab>

  <Tab title="IQ-8275">
    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=cd5f377bd80e68cccb513baaaf6fb376" alt="设置流程" width="954" height="269" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    **前提条件**

    * 按照 [Qualcomm Linux Build Guide](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/obtain-prebuilts) 中的说明设置您的基础环境
    * 将最新软件版本烧写到开发板。
    * 设置 SSH 连接。
      1. 在 Permissive 模式下启用 SSH。有关说明,请参阅[使用 SSH](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#use-ssh)
      2. 通过运行以下命令连接到设备:
         ```text theme={null}
         ssh root@<device_IP_address>
         ```
         例如,如果设备的 IP 地址是 10.92.160.222,请运行以下命令:
         ```text theme={null}
         ssh root@10.92.160.222
         ```

    **设置音频硬件**

    按如下方式将扬声器连接到开发板。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/playback_connection.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=fb5122928cf62f3c69355110083ee0d2" alt="设置流程" width="792" height="386" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/playback_connection.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    \\
  </Tab>

  <Tab title="QCS615">
    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=cd5f377bd80e68cccb513baaaf6fb376" alt="设置流程" width="954" height="269" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/getting-started-flow.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    **前提条件**

    * 按照 [Qualcomm Linux Build Guide](https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/obtain-prebuilts) 中的说明设置您的基础环境
    * 将最新软件版本烧写到开发板。
    * 设置 SSH 连接:
      1. 在 Permissive 模式下启用 SSH。有关说明,请参阅[使用 SSH](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#use-ssh)。
      2. 通过运行以下命令连接到设备:
         ```text theme={null}
         ssh root@<device_IP_address>
         ```
         例如,如果设备的 IP 地址是 10.92.160.222,请运行以下命令:
         ```text theme={null}
         ssh root@10.92.160.222
         ```

    **设置音频硬件**

    1. 按如下方式将音频硬件连接到开发板。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-hw-connections.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=ce093cd1dfae29a299bae34fc0e4d3cb" alt="设置流程" width="832" height="556" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-hw-connections.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    2. 按如下方式将 3.5 mm 耳机连接到开发板。

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-headset-connection.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=fe246520387f58cf1059ae222a6165c5" alt="设置流程" width="637" height="568" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-headset-connection.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>

    3. 按如下方式连接 WiFi。确保:
       * SW 12 设置为 OFF
       * SW 14 设置为 ON

    <div className="flex flex-col items-center gap-2">
      <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-wifi-setup.svg?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=bf7be4fe427b635c6e22fddaa2383fef" alt="设置流程" width="505" height="442" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/615-wifi-setup.svg" />

      <p className="text-sm text-gray-700">
        设置流程
      </p>
    </div>
  </Tab>
</Tabs>

## **使用 GStreamer 启用音频**

要使用 GStreamer 应用解码音频,请参阅以下内容。

* [音频解码示例](https://imsdkdocs.qualcomm.com/)

要使用 GStreamer 应用编码音频,请按照以下说明操作。

* 为 PipeWire 设置默认输入设备。
  使用 `wpctl status` 命令列出可用节点。运行 `wpctl set-default`,将源节点设置为手持设备麦克风。
  ```text theme={null}
  systemctl stop pipewire wireplumber pipewire.socket pipewire-manager.socket
  ```
  ```text theme={null}
  chmod 777 /dev/dma_heap/system
  ```
  ```text theme={null}
  systemctl start pipewire wireplumber
  ```
  ```text theme={null}
  wpctl status
  ```
  ```text theme={null}
  wpctl set-default <sink/source node ID>
  ```
* [音频编码示例](https://imsdkdocs.qualcomm.com/)

<Note>
  要查看适用于不同芯片组的 GStreamer 应用,请参阅[多媒体示例应用程序的源代码信息](https://imsdkdocs.qualcomm.com/)。
</Note>

GStreamer 是一个开源多媒体框架。Qualcomm 将 GStreamer 插件作为 Qualcomm IM SDK 的一部分提供。

### **GStreamer 插件**

* 用于音频解码器和编码器的 GStreamer 插件是 Qualcomm IM SDK 的一部分。下载完整的 Qualcomm IM SDK,以使用 [pulsesrc](https://imsdkdocs.qualcomm.com/) 和 [pulsesink](https://imsdkdocs.qualcomm.com/)。
* [Qualcomm IM SDK Quick Start Guide](https://imsdkdocs.qualcomm.com/) 介绍了如何下载和构建 Qualcomm IM SDK。

### **GStreamer 示例应用**

用于音频用例的[示例 GStreamer 应用](https://imsdkdocs.qualcomm.com/)是 Qualcomm IM SDK 的一部分。在运行示例应用之前,请满足这些[前提条件](https://imsdkdocs.qualcomm.com/)。

可通过命令行或 GST 应用运行音频用例。

#### **使用 GStreamer 应用播放和录制音频**

使用[音频播放/捕获](https://imsdkdocs.qualcomm.com/)中提到的参考 GST 命令。

## **使用 PipeWire 启用音频**

PipeWire 是一个基于图的多媒体数据处理框架。PipeWire 的源代码位于 `build-qcom-wayland/workspace/sources/pipewire`。

有关更多信息,请参阅 [PipeWire 开源文档](https://docs.pipewire.org/page_api.html),了解可用的详细 API。

<Note>
  本指南中的 `pw-play` 和 `pw-record` 实用工具演示了 .wav 文件的用法。PipeWire 作为框架,根据可用的编解码器和插件还支持其他格式。
</Note>

### **PipeWire 录制**

1. 设置 PipeWire 录制:
   使用 `wpctl status` 命令列出可用节点。运行 `wpctl set-default`,将源节点设置为手持设备麦克风。
   ```text theme={null}
   wpctl status
   ```
   ```text theme={null}
   wpctl set-default <sink/source node ID>
   ```
   ```text theme={null}
   pw-record /tmp/record.wav -v
   ```

<Note>
  有关 pw-record 的其他命令行选项,请使用 `--help` 标志。
</Note>

2. 按 **Ctrl + C** 停止录制。
   支持的格式为 s16le、s24le、s32le,采样率可以是 8000、16000、22050、24000、32000、44100、48000、88200、96000、176400、192000、352800、384000、705600 和 768000,声道数范围为 1 到最多 8。

### **录制的音量设置**

1. 使用 `pw-record` 实用工具开始音频捕获。
2. 并行打开一个新的命令提示符。打开 `ssh root@ip-addr` 并运行以下命令设置音量级别:
   ```text theme={null}
   wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.8
   ```
   在上述命令中,值 0.8 表示 80% 的音量。请根据所需的音量级别调整此值。

### **PipeWire 播放**

1. 将 .wav 音频文件推送到设备以进行播放:
   ```text theme={null}
   scp test.wav root@[ip-addr]:/opt/
   ```
2. 推送 test.wav 文件后,使用 `ssh root@ip-addr` 进入设备 shell。
3. 使用以下命令设置播放的默认 sink 模式,并在两种 sink 模式之间选择:一种用于低延迟(LL),另一种用于深缓冲(DB)。
   ```text theme={null}
   wpctl status
   ```
   ```text theme={null}
   wpctl set-default <sink/source node ID>
   ```
4. 使用以下命令开始播放:
   ```text theme={null}
   pw-play /opt/test.wav -v
   ```
   命令 shell 应类似于以下内容:

### **播放的音量设置**

1. 使用 `pw-play` 实用工具在扬声器上开始音频播放。
2. 并行打开一个新的命令提示符。打开 `ssh root@ip-addr` 并运行以下命令设置音量级别:
   ```text theme={null}
   wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.8
   ```
   在上述命令中,值 0.8 表示 80% 的音量。请根据所需的音量级别调整此值。

## **后续步骤**

* [自定义音频图](customize-audio-graph) — 在 PAL 层自定义音频用例
* [高级音频功能](advanced-audio-features) — 启用回声消除、噪声抑制和多设备播放
* [音频补充文档](../audio-addendum-overview) — 使用 QACT 和 QXDM 进行校准和诊断
* [排查音频问题](troubleshoot-audio) — 捕获并分析音频日志以解决问题
