# 音频概述

由低功耗人工智能 (LPAI) 驱动的音频子系统可提供语音 UI 和音频体验。它使用专用的基于硬件的人工智能加速器进行基于机器学习的工作。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export hw_sw_components.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.3194in" height="5.32639in" viewbox="0 0 887 383.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st13" aria-label="../../_images/hw_sw_components.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #fafafa; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st2 { fill: #ffffff; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st3 { fill: #000000; font-family: Microsoft YaHei UI; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-1 .st4 { font-size: 1em }
.svg-1 .st5 { font-family: Roboto; font-size: 1em }
.svg-1 .st6 { fill: #d2d7e1; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st7 { fill: #000000; font-family: Roboto; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-1 .st8 { marker-start: url("#mrkr4-40"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st9 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-1 .st10 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st11 { marker-end: url("#mrkr4-70"); marker-start: url("#mrkr4-40"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st12 { marker-end: url("#mrkr4-70"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st13 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-40" class="st9" v:arrowtype="4" v:arrowsize="2" v:setback="4.34" refx="4.34" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(2.26) "></use>	</marker>	<marker id="mrkr4-70" class="st9" v:arrowtype="4" v:arrowsize="2" v:setback="4.52" refx="-4.52" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-2.26,-2.26) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape28-1" v:mid="28" v:groupcontext="shape" transform="translate(0.75,-0.75)">		<title>Sheet.28</title>		<rect x="0" y="1.49998" width="885.5" height="382" rx="4.5" ry="4.5" class="st1"></rect>	</g>	<g id="shape1-3" v:mid="1" v:groupcontext="shape" transform="translate(227.25,-19.25)">		<title>Sheet.1</title>		<rect x="0" y="39.5" width="384" height="344" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape22-5" v:mid="22" v:groupcontext="shape" transform="translate(435.25,-50.4658)">		<title>Sheet.22</title>		<desc>接口</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="72" cy="243.5" width="144" height="280"></v:textrect>		<rect x="0" y="103.5" width="144" height="280" rx="4.5" ry="4.5" class="st2"></rect>		<text x="59" y="121" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>接口</text>		</g>	<g id="shape2-8" v:mid="2" v:groupcontext="shape" transform="translate(259.25,-50.884)">		<title>Sheet.2</title>		<desc>应用 DSP</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="72" cy="243.5" width="144" height="280"></v:textrect>		<rect x="0" y="103.5" width="144" height="280" rx="4.5" ry="4.5" class="st2"></rect>		<text x="43.95" y="121.16" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>应用<tspan class="st4" v:langid="1033"> </tspan><tspan class="st5" v:langid="1033">DSP</tspan></text>		</g>	<g id="shape5-13" v:mid="5" v:groupcontext="shape" transform="translate(283.25,-154.884)">		<title>Sheet.5</title>		<desc>应用 DSP 固件</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48" cy="351.134" width="96.01" height="64.732"></v:textrect>		<rect x="0" y="318.768" width="96" height="64.732" rx="4.5" ry="4.5" class="st6"></rect>		<text x="4.67" y="355.69" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>应用<tspan class="st4" v:langid="1033"> </tspan><tspan class="st5" v:langid="1033">DSP</tspan><tspan class="st4" v:langid="1033"> </tspan>固件</text>		</g>	<g id="shape6-19" v:mid="6" v:groupcontext="shape" transform="translate(459.25,-235.25)">		<title>Sheet.6</title>		<desc>TDM</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48" cy="351.134" width="96.01" height="64.732"></v:textrect>		<rect x="0" y="318.768" width="96" height="64.732" rx="4.5" ry="4.5" class="st6"></rect>		<text x="33.75" y="355.63" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TDM</text>		</g>	<g id="shape7-22" v:mid="7" v:groupcontext="shape" transform="translate(459.25,-154.884)">		<title>Sheet.7</title>		<desc>MI2S</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48" cy="351.134" width="96.01" height="64.732"></v:textrect>		<rect x="0" y="318.768" width="96" height="64.732" rx="4.5" ry="4.5" class="st6"></rect>		<text x="32.2" y="355.63" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>MI2S</text>		</g>	<g id="shape8-25" v:mid="8" v:groupcontext="shape" transform="translate(459.25,-74.518)">		<title>Sheet.8</title>		<desc>SoundWire</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48" cy="351.134" width="96.01" height="64.732"></v:textrect>		<rect x="0" y="318.768" width="96" height="64.732" rx="4.5" ry="4.5" class="st6"></rect>		<text x="14.53" y="355.63" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>SoundWire</text>		</g>	<g id="shape10-28" v:mid="10" v:groupcontext="shape" transform="translate(19.25,-51.25)">		<title>Sheet.10</title>		<desc>应用处理器</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="72" cy="243.5" width="144" height="280"></v:textrect>		<rect x="0" y="103.5" width="144" height="280" rx="4.5" ry="4.5" class="st2"></rect>		<text x="39.5" y="121" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>应用处理器</text>		</g>	<g id="shape11-31" v:mid="11" v:groupcontext="shape" transform="translate(43.25,-154.884)">		<title>Sheet.11</title>		<desc>多媒体框架/ 内核驱动程序</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="48" cy="351.134" width="96.01" height="64.732"></v:textrect>		<rect x="0" y="318.768" width="96" height="64.732" rx="4.5" ry="4.5" class="st6"></rect>		<text x="12.44" y="346.63" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>多媒体框架/<v:lf></v:lf><tspan x="9" dy="1.5em" class="st4">内核驱动程序</tspan></text>		</g>	<g id="shape12-35" v:mid="12" v:groupcontext="shape" v:layermember="0" transform="translate(259.25,-150.384)">		<title>Dynamic connector.16</title>		<path d="M-8.68 371 L-9.04 371 L-96 371" class="st8"></path>	</g>	<g id="shape14-41" v:mid="14" v:groupcontext="shape" v:layermember="0" transform="translate(163.25,-174.75)">		<title>Dynamic connector.18</title>		<path d="M8.68 371 L9.04 371 L94.63 371" class="st8"></path>	</g>	<g id="shape15-46" v:mid="15" v:groupcontext="shape" transform="translate(164.75,-195.25)">		<title>Sheet.15</title>		<desc>音频录制</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="31.625" cy="373.5" width="63.26" height="20"></v:textrect>		<rect x="0" y="363.5" width="63.25" height="20" rx="4.5" ry="4.5" class="st10"></rect>		<text x="5.62" y="378" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>音频录制</text>		</g>	<g id="shape16-49" v:mid="16" v:groupcontext="shape" transform="translate(164.75,-135.25)">		<title>Sheet.16</title>		<desc>音频播放</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="31.625" cy="373.5" width="63.26" height="20"></v:textrect>		<rect x="0" y="363.5" width="63.25" height="20" rx="4.5" ry="4.5" class="st10"></rect>		<text x="4" y="378" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>音频播放</text>		</g>	<g id="shape17-52" v:mid="17" v:groupcontext="shape" transform="translate(838.45,-108.85)">		<title>Sheet.17</title>		<rect v:rectcontext="foreign" x="0" y="354.7" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st10"></rect>		<image x="0" y="354.7" width="28.8" height="28.8" preserveaspectratio="none" xlink:href="data:image/png;base64,iVBOR					w0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvq					GQAAAMRSURBVGhD7ZhLaxRBFEbPzMRIUGKMQrL1BYpLQY1ZCooLxYX4E/QPuHCpCD5ABVHQILhTXAliFJcqPhcqLoSAD0QXoogLEaOgR					u50pVPzTc9UapxOT0IOXFLhfnXrVk/Xoy/MM/cYAkaAe8AXZ9a+AGxScSfRDZwA/gATDew3cHR9ou0ouoAnGQmnVq7937TWp2M4kiZX1					uRLdZNxdliDFMVG4K8kdx0Y7oM+EhsGRkVjfTZosCK4JIndUIHHTdHaYi+cB5LUZhV4mM/X3lFBEdg26Se1WAUe/VD2tZ9UMOPI7mIWw					unSiRROksjU7hMidsK5E5tQrD530mTc69ScunOieGITitXnTmxCE1CJ0edONRFvNwoRO+HciU1I70u5swcYc2ZtJX4CzfWh8aJ56Q1mb					SWUkBLSh8aLJjRgyK/oFVuJjRckFDDkV9yCb3iViI0XJBQw5FdC+pA/mlDAkF9pqi8F/K3wXQIuEv9H8feL38d8vtb6+thV3POXbez/5					q0Mukr8t8RvZZVGmC/VVpLPTJ81Euu1+FvikQTdLf5j4m/2SamTtWKAj+37vv+++FvivAQ9J/6VwLh8aY1CzxZgCbAMsLZ+D/8AVkgsH					eus+FtipwS1E1I5KJrp2AENArwSzQ4VRDOQLNqfEniryCrA48RX80s0soeuj89283m70C9X7WsLFyWBN8BC0dhgxxuWFkvVv1ZatDVTm					9gQPcAH6WOvU9sYdE/EH+CyihyTxd27wFdXtbB2s+LuNYk9nvz47eVk3VOF08nZ0zLW90xGXPsl282ArYUX/kDufbXdpVktqBG9wO2M5					J9C9ZXKhcFS/btq9t4twuliWuujcd4By1Xcbuy0tBNSBzezUuEhutgGrHXXjl7oXueStoq0adJP0PLUrmVb6GodLC+WTiYSb5nbrMWym					DNKGdgPfM5IaMrq60C+Wd99LlZh2HXh1OStNaNWmmXfXB9byB2DHU67gKvAcz9hN6lnwBWnWaCdOxF96rOO+QkUzayfwBildM/P+oboe					PZ6JUJrzzMn+QdjYPIFxW/sbgAAAABJRU5ErkJggg=="></image>		<rect v:rectcontext="foreign" x="0" y="354.7" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st10"></rect>	</g>	<g id="shape18-56" v:mid="18" v:groupcontext="shape" transform="translate(838.45,-244.85)">		<title>Sheet.18</title>		<rect v:rectcontext="foreign" x="0" y="354.7" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st10"></rect>		<image x="0" y="354.7" width="28.8" height="28.8" preserveaspectratio="none" xlink:href="data:image/png;base64,iVBOR					w0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvq					GQAAAMwSURBVGhD7ZpNq01RGMd/+9wiJsrgeikJqRsTQ8WIvIVQYkKJEjJQPgLyIZTJleQ974mUmPgAYijvM0IxouecdY+9/3vtvfba6					5xTt+6vnu45dz3P/7/WflvrnHVghunBQeAG8BH4O+QwD/M6oJ1owwLgacEgs7+ZmBbfZ+VOtY3Hrg+teeERHXU80U415bBHrBQDPNr+6					J5xDmnnmvBAxK4BE5o0BMzDvJxvx/7e0aQmfJMBrNKEIWJe+bNgN3Y0ejpHTbK/Pl1GzSAGkCSwD3jjwl7HknwAUwdgHZ96itjrWFL9k					wV6A+jFtBzAAC6hJP90gUSS/fvFWW8yGTWDG0BbgUSS/ZMFEkn2b/McHgN2AWeB+8AXF/eAM8BOoKNFFQxiAFECy4FX+ZqKlepLYKkWe					9C6aGIEjgI/PTVV8cMt16sZK9VE0y/u1Asc93SwOjqF98dULIfWRKPmPlYAvz25kzC2F1jowl5PevJ+ActU1KG50YQEMrue3dlxkdkNu					0ETc2xyN3Ve97nTUkL+QbqnLtdBZb3HZJ0medjoqVurSYX23oIwGjVRTkv7BU2o4aLUntKEBv4husuHOoGb0r5V2usWczuKtZ2r0m6E/					IOEBD5I+zxpr1tOL5ba99JuhPyDhAQ+S7s9bfLUDWBRsTYzLSXkHyQk8FDat0l73SW03S7R3ExtX+Eo/7WHdBOfl/ZbmlDDI6k9pwkN/					IOEBPZ7cvQs+LDFntTNsolOUe1oQgJzgbeSY5OUTVZVbO7AV6l5DczRxAb+QZoIrAH+eB65l9yRHmc+S4A97n+aZ8uQ1Srq0NxYsvwsX					Cdgk9DUjRYbJ1Ush+ZG4wr7H2rqsKXxd49pVVjuERURtCYaPaoh7FJpsJ+QPXMTWQitjaatgF3TJ4ArwCfgHXDZrf1jvuFu698nWSCRZ					P9kgUSS/XWtE3P6UylucPQuxWi6W0y59Ypt+6zUpCEwAVlui6kbdzWpCbs9pzEydDu2KkoTYTFms0U71xTd6CuFTHaNouL7IhelQd/WT					sVgm8y22ayiFVEyz0XgKPvDvMe1U22wbf9R/dTAPuldH9RPDWYYNv8A0H76scdT/SkAAAAASUVORK5CYII="></image>		<rect v:rectcontext="foreign" x="0" y="354.7" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st10"></rect>	</g>	<g id="shape23-60" v:mid="23" v:groupcontext="shape" transform="translate(651.25,-51.25)">		<title>Sheet.23</title>		<desc>编解码器</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="243.5" width="144" height="280"></v:textrect>		<rect x="0" y="103.5" width="144" height="280" rx="4.5" ry="4.5" class="st6"></rect>		<text x="46" y="248" class="st3" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>编解码器</text>		</g>	<g id="shape24-63" v:mid="24" v:groupcontext="shape" v:layermember="0" transform="translate(403.25,-171.966)">		<title>Dynamic connector</title>		<path d="M8.68 371 L9.04 371 L22.96 371" class="st11"></path>	</g>	<g id="shape25-71" v:mid="25" v:groupcontext="shape" v:layermember="0" transform="translate(611.25,-171.966)">		<title>Dynamic connector.25</title>		<path d="M8.68 371 L9.04 371 L30.96 371" class="st11"></path>	</g>	<g id="shape26-78" v:mid="26" v:groupcontext="shape" v:layermember="0" transform="translate(795.25,-243.966)">		<title>Dynamic connector.26</title>		<path d="M0 371 L27.96 371" class="st12"></path>	</g>	<g id="shape27-83" v:mid="27" v:groupcontext="shape" v:layermember="0" transform="translate(832.25,-107.966)">		<title>Dynamic connector.27</title>		<path d="M0 371 L-27.96 371" class="st12"></path>	</g></g>
</svg>

音频组件概述

音频系统包括：

- **应用处理器** – 处理音频处理任务的 CPU。任务包括：

    - 管理音频录制和播放
    - 解码音频格式
    - 使用 LPAI 进行后处理任务
- **低功耗 AI (LPAI)** – 运行音频播放/录制和语音激活 (VA) 算法的子系统。它集成了专用的 Qualcomm® Hexagon™ 处理器 (QDSP6) 和低功耗岛 (LPI)。
- **音频 codec** – 硬件包括：

    - 模数转换器 (ADC)
    - 数模转换器 (DAC)

    这些将模拟音频转换为数字音频，反之亦然。
- **扬声器 AMP 和麦克风** – 通过 I2S/TDM/SoundWire 连接的设备。

## 架构

下图显示了高级音频软件架构。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export architecture.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="14.5in" height="8.77083in" viewbox="0 0 1044 631.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st24" aria-label="../../_images/architecture.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-2 .st1 { fill: #fafafa; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-2 .st2 { fill: #fafafa; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st3 { fill: #000000; font-family: Microsoft YaHei UI; font-size: 1.00001em }
.svg-2 .st4 { fill: #ffffff; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st5 { fill: #000000; font-family: Roboto; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-2 .st6 { fill: #007884; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st7 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-2 .st8 { fill: #2a2aea; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st9 { fill: #2a2aea; stroke: #fafafa; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st10 { fill: #ffffff; font-family: Roboto; font-size: 0.833336em; letter-spacing: 0.0999997em }
.svg-2 .st11 { fill: #d2d7e1; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st12 { marker-end: url("#mrkr4-73"); marker-start: url("#mrkr4-71"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st13 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-2 .st14 { fill: #ffffff; stroke: none; stroke-linecap: butt; stroke-width: 7.2 }
.svg-2 .st15 { fill: #000000; font-family: Roboto; font-size: 0.833336em; letter-spacing: 0.0999997em }
.svg-2 .st16 { marker-end: url("#mrkr4-147"); marker-start: url("#mrkr4-145"); stroke: #f8cb9c; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st17 { fill: #f8cb9c; fill-opacity: 1; stroke: #f8cb9c; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-2 .st18 { fill: #2a2aea; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st19 { fill: #007884; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st20 { fill: #d2d7e1; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st21 { marker-end: url("#mrkr4-73"); stroke: #000000; stroke-dasharray: 14, 10; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st22 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st23 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st24 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-71" class="st13" v:arrowtype="4" v:arrowsize="2" v:setback="4.34" refx="4.34" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(2.26) "></use>	</marker>	<marker id="mrkr4-73" class="st13" v:arrowtype="4" v:arrowsize="2" v:setback="4.52" refx="-4.52" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-2.26,-2.26) "></use>	</marker>	<marker id="mrkr4-145" class="st17" v:arrowtype="4" v:arrowsize="2" v:setback="4.34" refx="4.34" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(2.26) "></use>	</marker>	<marker id="mrkr4-147" class="st17" v:arrowtype="4" v:arrowsize="2" v:setback="4.52" refx="-4.52" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-2.26,-2.26) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape116-1" v:mid="116" v:groupcontext="shape" transform="translate(0.75,-0.75)">		<title>Sheet.116</title>		<rect x="0" y="1.5" width="1042.5" height="630" rx="4.5" ry="4.5" class="st1"></rect>	</g>	<g id="shape117-3" v:mid="117" v:groupcontext="shape" transform="translate(872.75,-18.75)">		<title>Sheet.117</title>		<desc>编解码器</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="76" cy="557.75" width="152" height="147.5"></v:textrect>		<rect x="0" y="484" width="152" height="147.5" rx="4.5" ry="4.5" class="st2"></rect>		<text x="4" y="501.66" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>编解码器</text>		</g>	<g id="shape19-6" v:mid="19" v:groupcontext="shape" transform="translate(203.25,-531.75)">		<title>Sheet.19</title>		<desc>应用层</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="224" cy="591.5" width="448.01" height="80"></v:textrect>		<rect x="0" y="551.5" width="448" height="80" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="569.16" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>应用层</text>		</g>	<g id="shape21-9" v:mid="21" v:groupcontext="shape" transform="translate(203.25,-371.75)">		<title>Sheet.21</title>		<desc>中间层</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="224" cy="559.5" width="448.01" height="144"></v:textrect>		<rect x="0" y="487.5" width="448" height="144" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="505.16" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>中间层</text>		</g>	<g id="shape25-12" v:mid="25" v:groupcontext="shape" transform="translate(203.25,-211.75)">		<title>Sheet.25</title>		<desc>硬件抽象层</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="224" cy="559.5" width="448.01" height="144"></v:textrect>		<rect x="0" y="487.5" width="448" height="144" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="505.16" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>硬件抽象层</text>		</g>	<g id="shape26-15" v:mid="26" v:groupcontext="shape" transform="translate(203.25,-115.75)">		<title>Sheet.26</title>		<desc>内核空间</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="224" cy="591.5" width="448.01" height="80"></v:textrect>		<rect x="0" y="551.5" width="448" height="80" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="569.16" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>内核空间</text>		</g>	<g id="shape27-18" v:mid="27" v:groupcontext="shape" transform="translate(203.25,-19.75)">		<title>Sheet.27</title>		<desc>LPAI</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="224" cy="591.5" width="448.01" height="80"></v:textrect>		<rect x="0" y="551.5" width="448" height="80" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="569" class="st5" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>LPAI</text>		</g>	<g id="shape41-21" v:mid="41" v:groupcontext="shape" transform="translate(19.25,-211.75)">		<title>Sheet.41</title>		<desc>PC</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="76" cy="599.5" width="152" height="64"></v:textrect>		<rect x="0" y="567.5" width="152" height="64" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="585" class="st5" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>PC</text>		</g>	<g id="shape3-24" v:mid="3" v:groupcontext="shape" transform="translate(291.25,-387.75)">		<title>Sheet.3</title>		<rect x="0" y="535.5" width="336" height="96" rx="4.5" ry="4.5" class="st4"></rect>	</g>	<g id="shape1-26" v:mid="1" v:groupcontext="shape" transform="translate(307.25,-403.75)">		<title>Sheet.1</title>		<desc>PulseAudio</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="615.5" width="144" height="32"></v:textrect>		<rect x="0" y="599.5" width="144" height="32" rx="4.5" ry="4.5" class="st6"></rect>		<text x="36.69" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PulseAudio</text>		</g>	<g id="shape2-29" v:mid="2" v:groupcontext="shape" transform="translate(475.25,-403.75)">		<title>Sheet.2</title>		<desc>Gstreamer</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="615.5" width="144" height="32"></v:textrect>		<rect x="0" y="599.5" width="144" height="32" rx="4.5" ry="4.5" class="st6"></rect>		<text x="39.42" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Gstreamer</text>		</g>	<g id="shape4-32" v:mid="4" v:groupcontext="shape" transform="translate(315.25,-291.75)">		<title>Sheet.4</title>		<desc>PAL</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="144" cy="615.5" width="288" height="32"></v:textrect>		<rect x="0" y="599.5" width="288" height="32" rx="4.5" ry="4.5" class="st8"></rect>		<text x="131.57" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>PAL</text>		</g>	<g id="shape5-35" v:mid="5" v:groupcontext="shape" transform="translate(315.25,-227.75)">		<title>Sheet.5</title>		<desc>ARGS</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40" cy="615.5" width="80" height="32"></v:textrect>		<rect x="0" y="599.5" width="80" height="32" rx="4.5" ry="4.5" class="st8"></rect>		<text x="22.74" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ARGS</text>		</g>	<g id="shape8-38" v:mid="8" v:groupcontext="shape" transform="translate(419.25,-227.75)">		<title>Sheet.8</title>		<desc>AGM</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40" cy="615.5" width="80" height="32"></v:textrect>		<rect x="0" y="599.5" width="80" height="32" rx="4.5" ry="4.5" class="st8"></rect>		<text x="25.26" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>AGM</text>		</g>	<g id="shape9-41" v:mid="9" v:groupcontext="shape" transform="translate(523.25,-227.75)">		<title>Sheet.9</title>		<desc>TinyALSA</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40" cy="615.5" width="80" height="32"></v:textrect>		<rect x="0" y="599.5" width="80" height="32" rx="4.5" ry="4.5" class="st6"></rect>		<text x="10.2" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>TinyALSA</text>		</g>	<g id="shape10-44" v:mid="10" v:groupcontext="shape" transform="translate(299.25,-547.75)">		<title>Sheet.10</title>		<desc>应用程序</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="160" cy="615.5" width="320" height="32"></v:textrect>		<rect x="0" y="599.5" width="320" height="32" rx="4.5" ry="4.5" class="st4"></rect>		<text x="136" y="620.05" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>应用程序</text>		</g>	<g id="group11-47" transform="translate(215.25,-218.75)" v:mid="11" v:groupcontext="group">		<v:userdefs>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<title>Can</title>		<desc>ACDB</desc>		<g id="shape12-48" v:mid="12" v:groupcontext="shape">			<title>Sheet.12</title>			<v:userdefs>				<v:ud v:nameu="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"></v:ud>				<v:ud v:nameu="FillForegnd" v:prompt="" v:val="VT0(1):26"></v:ud>				<v:ud v:nameu="ControlHalfHeight" v:prompt="" v:val="VT0(0.069444444444444):1"></v:ud>				<v:ud v:nameu="FillForegnd" v:prompt="" v:val="VT5(#2a2aea)"></v:ud>			</v:userdefs>			<path d="M2.73 629.02 A20 5 -180 0 0 40 626.5 L40 591 A4.5 4.5 -180 0 0 35.5 586.5 L4.5 586.5 A4.5 4.5 -180 0 0 0						 591 L0 624.88 A4.5 4.5 -180 0 0 2.73 629.02 Z" class="st9"></path>		</g>		<g id="shape11-50" v:mid="11" v:groupcontext="groupContent">			<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>			<v:textrect cx="20" cy="606.5" width="40" height="50"></v:textrect>			<ellipse cx="20" cy="586.5" rx="20" ry="5" class="st9"></ellipse>			<text x="5.09" y="610.25" class="st10" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ACDB</text>			</g>	</g>	<g id="shape15-53" v:mid="15" v:groupcontext="shape" transform="translate(75.25,-227.75)">		<title>Sheet.15</title>		<desc>QACT</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40" cy="615.5" width="80" height="32"></v:textrect>		<rect x="0" y="599.5" width="80" height="32" rx="4.5" ry="4.5" class="st8"></rect>		<text x="22.48" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QACT</text>		</g>	<g id="shape16-56" v:mid="16" v:groupcontext="shape" transform="translate(419.25,-131.75)">		<title>Sheet.16</title>		<desc>ASOC</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="92" cy="615.5" width="184" height="32"></v:textrect>		<rect x="0" y="599.5" width="184" height="32" rx="4.5" ry="4.5" class="st6"></rect>		<text x="74.5" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>ASOC</text>		</g>	<g id="shape17-59" v:mid="17" v:groupcontext="shape" transform="translate(315.25,-35.75)">		<title>Sheet.17</title>		<desc>SPF</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="144" cy="615.5" width="288" height="32"></v:textrect>		<rect x="0" y="599.5" width="288" height="32" rx="4.5" ry="4.5" class="st8"></rect>		<text x="131.84" y="620" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>SPF</text>		</g>	<g id="shape18-62" v:mid="18" v:groupcontext="shape" transform="translate(688.25,-35.75)">		<title>Sheet.18</title>		<desc>编解码器</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="40" cy="615.5" width="80" height="32"></v:textrect>		<rect x="0" y="599.5" width="80" height="32" rx="4.5" ry="4.5" class="st11"></rect>		<text x="16" y="620.05" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>编解码器</text>		</g>	<g id="shape39-65" v:mid="39" v:groupcontext="shape" v:layermember="0" transform="translate(342.75,-227.75)">		<title>Dynamic connector</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 782.46" class="st12"></path>	</g>	<g id="shape42-74" v:mid="42" v:groupcontext="shape" v:layermember="0" transform="translate(155.25,-231.25)">		<title>Dynamic connector.42</title>		<desc>USB</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="30" cy="622.182" width="50" height="18.0036"></v:textrect>		<path d="M8.68 619 L9.04 619 L50.96 619" class="st12"></path>		<rect v:rectcontext="textBkgnd" x="19.1787" y="617.182" width="21.6428" height="10" class="st14"></rect>		<text x="19.18" y="624.68" class="st15" v:langid="1033"><v:paragraph v:spline="-1" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>USB</text>		</g>	<g id="shape43-83" v:mid="43" v:groupcontext="shape" v:layermember="0" transform="translate(255.25,-231.25)">		<title>Dynamic connector.43</title>		<path d="M8.68 619 L9.04 619 L50.96 619" class="st12"></path>	</g>	<g id="shape44-90" v:mid="44" v:groupcontext="shape" v:layermember="0" transform="translate(394.75,-231.25)">		<title>Dynamic connector.44</title>		<path d="M9.18 619 L9.54 619 L15.46 619" class="st12"></path>	</g>	<g id="shape46-97" v:mid="46" v:groupcontext="shape" v:layermember="0" transform="translate(498.75,-231.25)">		<title>Dynamic connector.46</title>		<path d="M9.18 619 L9.54 619 L15.46 619" class="st12"></path>	</g>	<g id="shape47-104" v:mid="47" v:groupcontext="shape" v:layermember="0" transform="translate(550.75,-291.75)">		<title>Dynamic connector.47</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 654.46" class="st12"></path>	</g>	<g id="shape48-111" v:mid="48" v:groupcontext="shape" v:layermember="0" transform="translate(366.75,-403.75)">		<title>Dynamic connector.48</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 702.46" class="st12"></path>	</g>	<g id="shape49-118" v:mid="49" v:groupcontext="shape" v:layermember="0" transform="translate(450.75,-407.25)">		<title>Dynamic connector.49</title>		<path d="M9.18 619 L9.54 619 L15.46 619" class="st12"></path>	</g>	<g id="shape51-125" v:mid="51" v:groupcontext="shape" v:layermember="0" transform="translate(550.75,-227.75)">		<title>Dynamic connector.51</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 686.46" class="st12"></path>	</g>	<g id="shape52-132" v:mid="52" v:groupcontext="shape" v:layermember="0" transform="translate(446.75,-227.75)">		<title>Dynamic connector.52</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 686.46" class="st12"></path>	</g>	<g id="shape54-139" v:mid="54" v:groupcontext="shape" v:layermember="0" transform="translate(603.25,-64.2)">		<title>Dynamic connector.54</title>		<path d="M8.68 643.96 L9.04 643.96 L75.96 644.04" class="st16"></path>	</g>	<g id="shape55-148" v:mid="55" v:groupcontext="shape" v:layermember="0" transform="translate(415.673,-547.75)">		<title>Dynamic connector.55</title>		<path d="M12.44 640.18 L12.44 640.54 L12.56 734.46" class="st12"></path>	</g>	<g id="shape56-155" v:mid="56" v:groupcontext="shape" v:layermember="0" transform="translate(486.75,-547.75)">		<title>Dynamic connector.56</title>		<path d="M12.5 640.18 L12.5 640.54 L12.5 734.46" class="st12"></path>	</g>	<g id="shape57-162" v:mid="57" v:groupcontext="shape" transform="translate(874.75,-124.75)">		<title>Sheet.57</title>		<rect x="0" y="615.5" width="40" height="16" rx="4.5" ry="4.5" class="st18"></rect>	</g>	<g id="shape94-164" v:mid="94" v:groupcontext="shape" transform="translate(874.75,-100.75)">		<title>Sheet.94</title>		<rect x="0" y="615.5" width="40" height="16" rx="4.5" ry="4.5" class="st19"></rect>	</g>	<g id="shape95-166" v:mid="95" v:groupcontext="shape" transform="translate(874.75,-76.75)">		<title>Sheet.95</title>		<rect x="0" y="615.5" width="40" height="16" rx="4.5" ry="4.5" class="st20"></rect>	</g>	<g id="shape96-168" v:mid="96" v:groupcontext="shape" v:layermember="0" transform="translate(874.75,-48.25)">		<title>Dynamic connector.96</title>		<path d="M8.68 619 L9.04 619 L30.96 619" class="st12"></path>	</g>	<g id="shape97-175" v:mid="97" v:groupcontext="shape" v:layermember="0" transform="translate(874.75,-32.25)">		<title>Dynamic connector.97</title>		<path d="M0 619 L30.96 619" class="st21"></path>	</g>	<g id="shape98-180" v:mid="98" v:groupcontext="shape" v:layermember="0" transform="translate(874.75,-16.25)">		<title>Dynamic connector.98</title>		<path d="M8.68 619 L9.04 619 L30.96 619" class="st16"></path>	</g>	<g id="shape101-187" v:mid="101" v:groupcontext="shape" v:layermember="0" transform="translate(603.25,-147.75)">		<title>Dynamic connector.101</title>		<path d="M0 631.5 L125 631.5 L125 702.46" class="st21"></path>	</g>	<g id="shape102-192" v:mid="102" v:groupcontext="shape" transform="translate(929.75,-123)">		<title>Sheet.102</title>		<desc>Qualcomm</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.2" cy="620.25" width="78.4" height="22.5"></v:textrect>		<rect x="0" y="609" width="78.4" height="22.5" rx="4.5" ry="4.5" class="st22"></rect>		<text x="5.97" y="624.75" class="st5" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm</text>		</g>	<g id="shape111-195" v:mid="111" v:groupcontext="shape" v:layermember="0" transform="translate(832.25,-48.25)">		<title>Dynamic connector.111</title>		<path d="M-8.68 619 L-9.04 619 L-54.96 619" class="st16"></path>	</g>	<g id="shape112-202" v:mid="112" v:groupcontext="shape" v:layermember="0" transform="translate(832.25,-32.25)">		<title>Dynamic connector.112</title>		<path d="M-8.68 619 L-9.04 619 L-54.96 619" class="st16"></path>	</g>	<g id="shape113-209" v:mid="113" v:groupcontext="shape" transform="translate(831.85,-54.35)">		<title>Sheet.113</title>		<rect v:rectcontext="foreign" x="0" y="617.1" width="14.4" height="14.4" rx="4.5" ry="4.5" class="st22"></rect>		<image x="0" y="617.1" width="14.4" height="14.4" preserveaspectratio="none" xlink:href="data:image/png;base64,iVBOR					w0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvq					GQAAAGPSURBVEhLzZW9SkMxFIC/JGJROoio6CA6al9AfAAFbaE4+CQOroJDfQTduzk4iW6iWNEnUcFKXQRBieTntmm4t3pvKfSDQHJy/					nJuTi6MCXWUaklBB+gIaAHVWKkoNSQagQa0MnOknQO7sXIRTLYaxTlQsUOYuQkizN7QvPls1wOZCaQltANZYZJyRIgMeW5EUv+YLHlus					jLNkudGi9RMi5foxg9P90rGxPLbfrsMpDWy2SVo2b/uyqMASX8MRqQaZp0gdPj/kj0bxXlY9Ou2tN1r776lXKYirEz4PphbMt2unO2fX					LnrV9oxCwUtV7YJ08lrPpCZa1C+k1XVn+Ay8pWGbNi3By68oNYrU7cM2um4JARce5vjfl8pzMAq8OUdWQcoakLwAHwA78B98NDVve4ns					NLnbACHPssXKG3FmwHbwKsPcBBvZrJvS89TcIOa0y7ThVlYBvYUNIOSPbrPlY9J4AT4MU7ch+79F/z4BhpwZHSLMrUJnCm4Cxyb+SmwE					WsPSxJgZIw8QPQQjgG/bsOCSwo/KuEAAAAASUVORK5CYII="></image>		<rect v:rectcontext="foreign" x="0" y="617.1" width="14.4" height="14.4" rx="4.5" ry="4.5" class="st22"></rect>	</g>	<g id="shape114-213" v:mid="114" v:groupcontext="shape" transform="translate(833.85,-37.55)">		<title>Sheet.114</title>		<rect v:rectcontext="foreign" x="0" y="617.1" width="14.4" height="14.4" rx="4.5" ry="4.5" class="st22"></rect>		<image x="0" y="617.1" width="14.4" height="14.4" preserveaspectratio="none" xlink:href="data:image/png;base64,iVBOR					w0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvq					GQAAADdSURBVEhL7ZQ9CgIxFIS/TbplwRXRk9l4DI/kCTyGhRYqW4iKlZVY264k+0sw+iCx2w9SZd5MkbyBgQhMNKyBO7BwL0PJgSNQQ					lICD1cQQgZslTXnWoXYE4UUzaY2PGcwCw2YA6eeSXP25g1qTVBAQdIZK3gBK2DU0wQFCIbtI//Q+NCSAJHGi2RYovEiGZZovEiGJRovz					aZ+IyigAFUbJKVuv2luqqIhKMAs2qXahfY7mn2ItmguKXRVQYSq+IQpu501Tbj9I8AwBg4986criEA2NSG2thVL93YgmDdTZFX72mZti					wAAAABJRU5ErkJggg=="></image>		<rect v:rectcontext="foreign" x="0" y="617.1" width="14.4" height="14.4" rx="4.5" ry="4.5" class="st22"></rect>	</g>	<g id="shape123-217" v:mid="123" v:groupcontext="shape" transform="translate(333.48,-446.25)">		<title>Sheet.123</title>		<desc>Client middleware</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.7662" cy="621.5" width="91.56" height="20"></v:textrect>		<path d="M0 627 A4.5001 4.5001 -180 0 0 4.5 631.5 L87.04 631.5 A4.5001 4.5001 -180 0 0 91.54 627 L91.54 616 A4.5001 4.5001					 -180 0 0 87.04 611.5 L4.5 611.5 A4.5001 4.5001 -180 0 0 -0 616 L0 627 Z" class="st23"></path>		<text x="9.77" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>客户端中间件</text>		</g>	<g id="shape124-220" v:mid="124" v:groupcontext="shape" transform="translate(501.48,-446.25)">		<title>Sheet.124</title>		<desc>MM framework</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="45.7662" cy="621.5" width="91.56" height="20"></v:textrect>		<path d="M0 627 A4.5001 4.5001 -180 0 0 4.5 631.5 L87.04 631.5 A4.5001 4.5001 -180 0 0 91.54 627 L91.54 616 A4.5001 4.5001					 -180 0 0 87.04 611.5 L4.5 611.5 A4.5001 4.5001 -180 0 0 -0 616 L0 627 Z" class="st23"></path>		<text x="20.27" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>MM 框架</text>		</g>	<g id="shape137-223" v:mid="137" v:groupcontext="shape" transform="translate(929.75,-102.45)">		<title>Sheet.137</title>		<desc>Open source</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.9973" cy="621.5" width="80.01" height="20"></v:textrect>		<path d="M0 627 A4.0771 4.5001 -180 0 0 4.08 631.5 L75.92 631.5 A4.0771 4.5001 -180 0 0 80 627 L80 616 A4.0771 4.5001					 -180 0 0 75.92 611.5 L4.08 611.5 A4.0771 4.5001 -180 0 0 0 616 L0 627 Z" class="st22"></path>		<text x="3.99" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>开源</text>		</g>	<g id="shape138-226" v:mid="138" v:groupcontext="shape" transform="translate(929.75,-81.9)">		<title>Sheet.138</title>		<desc>Hardware</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.1966" cy="621.5" width="78.43" height="20"></v:textrect>		<path d="M0 627 A5.05455 4.5001 -180 0 0 5.05 631.5 L73.35 631.5 A5.05455 4.5001 -180 0 0 78.4 627 L78.4 616 A5.05455					 4.5001 -180 0 0 73.35 611.5 L5.05 611.5 A5.05455 4.5001 -180 0 0 -0 616 L0 627 Z" class="st22"></path>		<text x="3.99" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>硬件</text>		</g>	<g id="shape139-229" v:mid="139" v:groupcontext="shape" transform="translate(929.75,-61.35)">		<title>Sheet.139</title>		<desc>Data flow</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.1966" cy="621.5" width="78.43" height="20"></v:textrect>		<path d="M0 627 A5.05455 4.5001 -180 0 0 5.05 631.5 L73.35 631.5 A5.05455 4.5001 -180 0 0 78.4 627 L78.4 616 A5.05455					 4.5001 -180 0 0 73.35 611.5 L5.05 611.5 A5.05455 4.5001 -180 0 0 -0 616 L0 627 Z" class="st22"></path>		<text x="3.99" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>数据流</text>		</g>	<g id="shape140-232" v:mid="140" v:groupcontext="shape" transform="translate(929.75,-40.8)">		<title>Sheet.140</title>		<desc>Data + control</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.9976" cy="621.5" width="80.01" height="20"></v:textrect>		<path d="M0 627 A3.58217 4.5001 -180 0 0 3.58 631.5 L76.42 631.5 A3.58217 4.5001 -180 0 0 80 627 L80 616 A3.58217 4.5001					 -180 0 0 76.42 611.5 L3.58 611.5 A3.58217 4.5001 -180 0 0 -0 616 L0 627 Z" class="st22"></path>		<text x="3.99" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>数据 + 控制</text>		</g>	<g id="shape141-235" v:mid="141" v:groupcontext="shape" transform="translate(929.75,-20.25)">		<title>Sheet.141</title>		<desc>Control</desc>		<v:userdefs></v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.1963" cy="621.5" width="78.42" height="20"></v:textrect>		<path d="M0 627 A5.5299 4.5001 -180 0 0 5.53 631.5 L72.87 631.5 A5.5299 4.5001 -180 0 0 78.4 627 L78.4 616 A5.5299 4.5001					 -180 0 0 72.87 611.5 L5.53 611.5 A5.5299 4.5001 -180 0 0 -0 616 L0 627 Z" class="st22"></path>		<text x="3.99" y="626" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>控制</text>		</g></g>
</svg>

高级音频软件架构

以下是主要的音频软件架构组件：

[PulseAudio](https://docs.qualcomm.com/doc/80-70020-16SC/topic/enable-audio.html#enable-pulseaudio)

POSIX 操作系统（主要针对 Linux）的声音服务器，充当一个或多个主机上的硬件设备驱动程序和应用程序之间的代理和路由器。

[平台抽象层 (PAL)](https://docs.qualcomm.com/doc/80-70020-16SC/topic/pal.html#pal)

提供更高级别的音频特定 API 来访问音频硬件和驱动程序以启用音频功能。

[音频图管理器 (AGM)](https://docs.qualcomm.com/doc/80-70020-16SC/topic/agm.html#agm)

提供接口以允许基于 TinyALSA 的混音器控件和 PCM/压缩插件进行交互并启用音频功能。

[AudioReach Graph Service (ARGS)](https://docs.qualcomm.com/doc/80-70020-16SC/topic/agm.html#args)

由图服务层 (GSL)、通用包路由器 (GPR) 和 ACDB 管理层 (AML) 模块组成。处理图的初始化和创建，以及创建用于向信号处理框架 (SPF) 发送一系列命令的数据包。

[音频校准数据库 (ACDB)](https://docs.qualcomm.com/doc/80-70020-16SC/topic/agm.html#section-rhd-fg4-zbc)

包括各种音频用例的信息，例如图、模块校准数据等。APPS 处理器解析 acdb 文件以获取 SPF 用于启用用例的图信息。

[信号处理框架 (SPF)](https://docs.qualcomm.com/doc/80-70020-16SC/topic/agm.html#spf-sw)

在 LPAI DSP 上运行的模块化框架。它有助于设置、配置和运行音频功能的信号处理模块。

[Qualcomm Audio Calibration Tool（QACT™ 平台）](https://docs.qualcomm.com/bundle/resource/topics/80-70020-16A/tools.html)

基于 PC 的软件，提供 GUI 来可视化、配置和存储音频用例的 acdb 中的音频图。

Last Published: Jul 23, 2025

[Previous Topic
音频文档](https://docs.qualcomm.com/bundle/publicresource/80-70020-16SC/topics/audio.md) [Next Topic
启用音频](https://docs.qualcomm.com/bundle/publicresource/80-70020-16SC/topics/enable-audio.md)