# 高级音频功能

## 最大限度地减少回声和噪音

回声和噪声问题在 VoIP 系统中很常见。语音来自远端扬声器并延迟回声，从而导致感知问题。回声消除可减少通信期间来自远端扬声器的回声。噪声抑制可降低麦克风通道的噪声。Fluence 回声消除和噪声抑制 (ECNS) 算法提供稳态和非稳态噪声抑制和回声消除。

声学回声是指由于设备的扬声器和麦克风之间的声学​路径（声学耦合）而产生的回声。这对于免提和电话会议应用非常重要。

下图展示了声学回声路径以及扬声器与麦克风之间声学回声的产生过程。

<?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 ecns_overview.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="8.26111in" height="4.25in" viewbox="0 0 594.8 306" xml:space="preserve" color-interpolation-filters="sRGB" class="st10" aria-label="../../_images/ECNS_overview.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st2 { fill: #fafafa; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st3 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st4 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st5 { fill: #000000; font-family: SimHei; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-1 .st6 { marker-end: url("#mrkr4-69"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st7 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-1 .st8 { marker-start: url("#mrkr4-80"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st9 { marker-end: url("#mrkr4-86"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st10 { 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-69" class="st7" 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-80" class="st7" 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-86" class="st7" 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,-2.26) "></use>	</marker></defs><g v:mid="4" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="8.26111" height="4.25" v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="594.8" height="306" rx="4.5" ry="4.5" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" 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="shape70-3" v:mid="70" v:groupcontext="shape" transform="translate(18.75,-18.75)">		<title>Sheet.70</title>		<rect x="0" y="37.5" width="557.3" height="268.5" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape35-5" v:mid="35" v:groupcontext="shape" transform="translate(370.163,-151.534) rotate(-5.59301)">		<title>Sheet.35</title>		<path d="M0 301.72 C9.22 303.76 18.73 305.18 28.26 305.72 C38.71 306.32 49.18 305.86 59.43 305.41 C63.5 305.23 67.53					 305.05 71.76 304.71 C73.74 304.55 75.76 304.35 77.22 303.58 C78.45 302.93 79.27 301.87 80.57 301.72" class="st3"></path>	</g>	<g id="shape36-8" v:mid="36" v:groupcontext="shape" transform="translate(721.265,-52.9172) rotate(60.0719)">		<title>Sheet.36</title>		<path d="M0 306 C6.08 301.87 12.87 300.56 19.78 300.31 C29.28 299.97 39.02 301.65 47.48 306" class="st3"></path>	</g>	<g id="shape37-11" v:mid="37" v:groupcontext="shape" transform="translate(672.362,288.765) rotate(123.453)">		<title>Sheet.37</title>		<path d="M0 304.78 C10.58 305.54 24.45 307.14 33.56 304.78" class="st3"></path>	</g>	<g id="shape38-14" v:mid="38" v:groupcontext="shape" transform="translate(418.069,-185.25)">		<title>Sheet.38</title>		<path d="M6.5 290 L6.5 293.29 A4.5 4.5 0 0 1 4.58 296.97 C1.59 299.07 0.7 302.94 0 306" class="st3"></path>	</g>	<g id="shape44-17" v:mid="44" v:groupcontext="shape" transform="translate(411.069,-200.475)">		<title>Sheet.44</title>		<path d="M0 305.23 C4 306.2 9.2 306.37 13.5 305.23" class="st3"></path>	</g>	<g id="shape47-20" v:mid="47" v:groupcontext="shape" transform="translate(409.807,-201.25)">		<title>Sheet.47</title>		<path d="M1.26 306 C0.41 305.21 -0.17 303.95 0.05 302.48 A4.5 4.5 -180 0 0 0.08 301.44 C-0.03 300.04 0.16 298.54 0.15					 298" class="st3"></path>	</g>	<g id="shape48-23" v:mid="48" v:groupcontext="shape" transform="translate(401.566,-206.25)">		<title>Sheet.48</title>		<path d="M8.5 299 C8.46 298.51 8.1 298.2 7.54 297.86 A2.25 2.25 0 0 1 6.47 295.6 C6.62 294.6 6.35 293.63 5.67 292.73					 A2.25 2.25 -180 0 0 3.92 291.84 C2.4 291.81 0.11 292.04 0 290.4 C-0.01 290.14 0.03 289.83 0.24 289.64 A4.5					 4.5 -180 0 0 0.95 288.86 C3.25 285.59 5.83 283.1 8.66 279.95 A2.25 2.25 -180 0 0 9.09 277.65 C8.65 276.48					 8.04 275.52 7.3 274.7 A4.5 4.5 0 0 1 6.16 271.21 C6.42 268.72 6.96 266.46 7.7 264.3 C8.33 262.47 9.09 260.72					 10.39 259.48 A4.5 4.5 -180 0 0 11.74 255.57 C11.48 253.81 12.11 251.79 13.01 250.51 A4.5 4.5 -180 0 0 13.83					 248.1 C13.91 246.02 15.76 245.03 17.7 244.5 C21.45 243.48 25.56 244.19 29.5 245 C35.94 246.32 41.9 247.93					 48.5 248.2 C52.49 248.36 56.71 248.03 59.08 251.33 A4.5 4.5 -180 0 0 60.3 252.49 C63.53 254.56 66.56 257.53					 68.3 261.3 C71.11 267.36 70.62 275.49 68.1 282.2 C65.69 288.65 61.4 293.77 56.7 298.31 A4.5 4.5 0 0 1 56.35					 298.62 C54.17 300.31 53.79 303.44 54.5 306" class="st3"></path>	</g>	<g id="shape50-26" v:mid="50" v:groupcontext="shape" transform="translate(714.342,101.564) rotate(91.6592)">		<title>Sheet.50</title>		<path d="M0 304.4 C-0.39 307.34 3.97 305.6 4 304.4" class="st3"></path>	</g>	<g id="shape51-29" v:mid="51" v:groupcontext="shape" transform="translate(226.957,-198.45)">		<title>Sheet.51</title>		<rect v:rectcontext="foreign" x="0" y="277.2" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st4"></rect>		<image x="0" y="277.2" 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="277.2" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st4"></rect>	</g>	<g id="shape53-33" v:mid="53" v:groupcontext="shape" transform="translate(58.4356,-211.25)">		<title>Sheet.53</title>		<desc>近端语音信号</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="81.3214" cy="296" width="162.65" height="20"></v:textrect>		<rect x="0" y="286" width="162.643" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>近端语音信号</text>		</g>	<g id="shape54-36" v:mid="54" v:groupcontext="shape" transform="translate(227.75,-67.25)">		<title>Sheet.54</title>		<rect v:rectcontext="foreign" x="0" y="277.2" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st4"></rect>		<image x="0" y="277.2" 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="277.2" width="28.8" height="28.8" rx="4.5" ry="4.5" class="st4"></rect>	</g>	<g id="shape56-40" v:mid="56" v:groupcontext="shape" transform="translate(68.55,-85.25)">		<title>Sheet.56</title>		<desc>近端语音信号</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="81.3214" cy="296" width="162.65" height="20"></v:textrect>		<rect x="0" y="286" width="162.643" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>近端语音信号</text>		</g>	<g id="shape61-43" v:mid="61" v:groupcontext="shape" transform="translate(392,-136.25)">		<title>Sheet.61</title>		<desc>近端扬声器</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="50.8407" cy="296" width="101.69" height="20"></v:textrect>		<rect x="0" y="286" width="101.681" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="18.34" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>近端扬声器</text>		</g>	<g id="shape62-46" v:mid="62" v:groupcontext="shape" transform="translate(386.757,-89.25)">		<title>Sheet.62</title>		<desc>环境噪声</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="50.8407" cy="296" width="101.69" height="20"></v:textrect>		<rect x="0" y="286" width="101.681" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>环境噪声</text>		</g>	<g id="shape63-49" v:mid="63" v:groupcontext="shape" transform="translate(335.159,-37.25)">		<title>Sheet.63</title>		<desc>声学回声路径</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="50.8407" cy="296" width="101.69" height="20"></v:textrect>		<rect x="0" y="286" width="101.681" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="11.84" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>声学回声路径</text>		</g>	<g id="shape64-52" v:mid="64" v:groupcontext="shape" transform="translate(162.869,-122.75)">		<title>Sheet.64</title>		<desc>声学回声</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="50.8407" cy="296" width="101.69" height="20"></v:textrect>		<rect x="0" y="286" width="101.681" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>声学回声</text>		</g>	<g id="shape65-55" v:mid="65" v:groupcontext="shape" transform="translate(58.757,-181.25)">		<title>Sheet.65</title>		<desc>近端语音</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="81.3214" cy="296" width="162.65" height="20"></v:textrect>		<rect x="0" y="286" width="162.643" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>近端语音</text>		</g>	<g id="shape66-58" v:mid="66" v:groupcontext="shape" transform="translate(68.55,-58.75)">		<title>Sheet.66</title>		<desc>远端语音</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="81.3214" cy="296" width="162.65" height="20"></v:textrect>		<rect x="0" y="286" width="162.643" height="20" rx="4.5" ry="4.5" class="st4"></rect>		<text x="4" y="300.5" class="st5" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>远端语音</text>		</g>	<g id="shape69-61" v:mid="69" v:groupcontext="shape" transform="translate(332.941,-75.0093) rotate(12.9148)">		<title>Sheet.69</title>		<path d="M0 306 L114.09 306" class="st3"></path>	</g>	<g id="shape15-64" v:mid="15" v:groupcontext="shape" v:layermember="0" transform="translate(393.757,-196.75)">		<title>Dynamic connector.15</title>		<path d="M0 293.5 L-125.96 293.5" class="st6"></path>	</g>	<g id="shape52-70" v:mid="52" v:groupcontext="shape" v:layermember="0" transform="translate(226.957,-196.75)">		<title>Dynamic connector.52</title>		<path d="M0 293.5 L-171.16 293.5" class="st6"></path>	</g>	<g id="shape55-75" v:mid="55" v:groupcontext="shape" v:layermember="0" transform="translate(227.75,-72.75)">		<title>Dynamic connector.55</title>		<path d="M-8.68 293.5 L-9.04 293.5 L-159.2 293.5" class="st8"></path>	</g>	<g id="shape57-81" v:mid="57" v:groupcontext="shape" transform="translate(-20.978,281.953) rotate(-101.618)">		<title>Sheet.57</title>		<path d="M0 291.5 C13.24 304.85 72.07 313.93 100.99 296.93 L101.28 296.71" class="st9"></path>	</g>	<g id="shape58-87" v:mid="58" v:groupcontext="shape" transform="translate(477.716,-94.0467) rotate(47.7367)">		<title>Sheet.58</title>		<path d="M8.68 305.85 L9.04 305.85 C48.53 304.62 118.02 296.74 162.48 302.19 C170.59 303.18 177.87 304.62 185.12 306" class="st8"></path>	</g>	<g id="shape60-92" v:mid="60" v:groupcontext="shape" transform="translate(448.503,-134.922) rotate(38.4416)">		<title>Sheet.60</title>		<path d="M8.68 306 L9.04 306 L164.06 306" class="st8"></path>	</g>	<g id="shape67-97" v:mid="67" v:groupcontext="shape" v:layermember="0" transform="translate(167.757,-169.273)">		<title>Dynamic connector.67</title>		<path d="M0 294.02 L-112.06 293.05" class="st6"></path>	</g>	<g id="shape68-102" v:mid="68" v:groupcontext="shape" v:layermember="0" transform="translate(187.343,-46.25)">		<title>Dynamic connector.68</title>		<path d="M-8.68 293.5 L-9.04 293.5 L-118.79 293.5" class="st8"></path>	</g></g>
</svg>

噪声和声学回声

- **回声消除器** – 自适应滤波器，可自动调整系数以消除回声。每个回声都有一个回声路径，特征为脉冲响应。回声消除器适应网络回声路径，从而消除回声。
- **噪音抑制** – 单麦克风回声消除器和噪音抑制器 (SMECNS) 有助于在嘈杂环境中使用设备时抑制周围的平稳噪音。

### 启用 SMECNS 进行录音

录音时，Fluence 通过抑制麦克风采集的背景噪音来保持录音路径中的语音质量。

对于单麦克风录音，只能抑制平稳噪音。平稳噪音是指频率不随时间变化的噪音，例如道路噪音或白噪音。

下图展示了如何利用增益、SMECNS 和后处理模块消除外部噪声和回声，从而输出清晰的语音。

<?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 fluence_recording.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.6389in" height="3.95139in" viewbox="0 0 910 284.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st16" aria-label="../../_images/fluence_recording.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-2 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st2 { fill: #fafafa; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-2 .st3 { fill: #fafafa; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-2 .st4 { fill: #ffffff; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st5 { fill: #6280cc; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st6 { fill: #ffffff; font-family: SimHei; font-size: 1.08334em; letter-spacing: 0.0769224em }
.svg-2 .st7 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em; letter-spacing: 0.0833327em }
.svg-2 .st8 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st9 { fill: #000000; font-family: Roboto; font-size: 1.16666em; letter-spacing: 0.0714292em }
.svg-2 .st10 { fill: #000000; font-family: SimHei; font-size: 1.16666em; letter-spacing: 0.0714292em }
.svg-2 .st11 { font-size: 1em }
.svg-2 .st12 { fill: #ffffff; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st13 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st14 { marker-end: url("#mrkr4-36"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-2 .st15 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-2 .st16 { 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-36" class="st15" 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="4" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="12.6389" height="3.95139" v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="910" height="284.5" rx="4.5" ry="4.5" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" 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="shape18-3" v:mid="18" v:groupcontext="shape" transform="translate(18.75,-18.75)">		<title>Sheet.18</title>		<rect x="0" y="37.5" width="872.5" height="247" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape17-5" v:mid="17" v:groupcontext="shape" transform="translate(37,-37.5)">		<title>Sheet.17</title>		<rect x="0" y="75.5" width="835.5" height="209" rx="4.5" ry="4.5" class="st3"></rect>	</g>	<g id="shape2-7" v:mid="2" v:groupcontext="shape" transform="translate(207.136,-56.5)">		<title>Sheet.2</title>		<rect x="0" y="148.5" width="510.864" height="136" rx="4.5" ry="4.5" class="st4"></rect>	</g>	<g id="shape3-9" v:mid="3" v:groupcontext="shape" transform="translate(222,-88.5)">		<title>Rectangle</title>		<desc>增益</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="64" cy="248.5" width="128" height="72"></v:textrect>		<rect x="0" y="212.5" width="128" height="72" rx="4.5" ry="4.5" class="st5"></rect>		<text x="50" y="253.38" class="st6" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>增益</text>		</g>	<g id="shape4-12" v:mid="4" v:groupcontext="shape" transform="translate(398,-88.5)">		<title>Rectangle.4</title>		<desc>SMECNS</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="64" cy="248.5" width="128" height="72"></v:textrect>		<rect x="0" y="212.5" width="128" height="72" rx="4.5" ry="4.5" class="st5"></rect>		<text x="37.05" y="253" class="st7" v:langid="1033"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>SMECNS</text>		</g>	<g id="shape5-15" v:mid="5" v:groupcontext="shape" transform="translate(574,-88.5)">		<title>Rectangle.5</title>		<desc>后处理模块</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="64" cy="248.5" width="128" height="72"></v:textrect>		<rect x="0" y="212.5" width="128" height="72" rx="4.5" ry="4.5" class="st5"></rect>		<text x="29" y="253.38" class="st6" v:langid="2052"><v:paragraph v:spline="-1.5" v:horizalign="1"></v:paragraph><v:tablist></v:tablist>后处理模块</text>		</g>	<g id="shape6-18" v:mid="6" v:groupcontext="shape" transform="translate(402.786,-207.929)">		<title>Sheet.6</title>		<desc>Qualcomm LPAI</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="76" cy="274.5" width="152" height="20"></v:textrect>		<rect x="0" y="264.5" width="152" height="20" rx="4.5" ry="4.5" class="st8"></rect>		<text x="4" y="279.75" class="st9" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>Qualcomm LPAI</text>		</g>	<g id="shape9-21" v:mid="9" v:groupcontext="shape" transform="translate(55,-93.5)">		<title>Sheet.9</title>		<desc>语音 + 噪声 + 回声输入</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="46.25" cy="253.5" width="92.51" height="62"></v:textrect>		<rect x="0" y="222.5" width="92.5" height="62" rx="4.5" ry="4.5" class="st8"></rect>		<text x="4" y="237.75" class="st10" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>语音 +<v:lf></v:lf><tspan x="4" dy="1.5em" class="st11">噪声</tspan> +<v:lf></v:lf><tspan x="4" dy="1.5em" class="st11">回声输入</tspan></text>		</g>	<g id="shape10-26" v:mid="10" v:groupcontext="shape" transform="translate(150,-108.5)">		<title>Circle</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 268.5 A16 16 0 1 1 32 268.5 A16 16 0 0 1 0 268.5 Z" class="st12"></path>	</g>	<g id="shape11-28" v:mid="11" v:groupcontext="shape" transform="translate(434.5,124) rotate(90)">		<title>Sheet.11</title>		<path d="M0 284.5 L72 284.5" class="st13"></path>	</g>	<g id="shape12-31" v:mid="12" v:groupcontext="shape" transform="translate(182,-124.5)">		<title>Sheet.12</title>		<path d="M0 284.5 L30.96 284.5" class="st14"></path>	</g>	<g id="shape13-37" v:mid="13" v:groupcontext="shape" transform="translate(350,-124.5)">		<title>Sheet.13</title>		<path d="M0 284.5 L38.96 284.5" class="st14"></path>	</g>	<g id="shape14-42" v:mid="14" v:groupcontext="shape" transform="translate(526,-124.5)">		<title>Sheet.14</title>		<path d="M0 284.5 L38.96 284.5" class="st14"></path>	</g>	<g id="shape15-47" v:mid="15" v:groupcontext="shape" transform="translate(702,-124.5)">		<title>Sheet.15</title>		<path d="M0 284.5 L43.96 284.5" class="st14"></path>	</g>	<g id="shape16-52" v:mid="16" v:groupcontext="shape" transform="translate(761.5,-93.5)">		<title>Sheet.16</title>		<desc>清理语音输出</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="51.25" cy="253.5" width="102.5" height="62"></v:textrect>		<rect x="0" y="222.5" width="102.5" height="62" rx="4.5" ry="4.5" class="st8"></rect>		<text x="4" y="258.75" class="st10" v:langid="2052"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>清理语音输出</text>		</g></g>
</svg>

用于录音的 SMECNS 软件块

要在录音路径中启用 SMECNS：

1. 使用 `wpctl status` 命令列出可用节点。

wpctl status
        Copy to clipboard
2. 运行 `wpctl set-default` 将源节点设置为手机麦克风。

wpctl set-default <handset mic node>
        Copy to clipboard
3. 运行 `pw-record` 以开始录制。以下示例以详细模式运行并将录制内容保存到 `/opt/rec3.wav`。

pw-record /opt/rec3.wav -v
        Copy to clipboard

### 为 VoIP 启用 SMECNS

Fluence 可降低噪音并消除 VoIP 通信中的回声。它还可抑制麦克风信号中的噪音和声学回声。

SDK 支持 PipeWire VoIP 发送端和接收端，您可以在开发应用程序时使用。

下图展示了在 VoIP 通信中应用增益、Fluence 和后处理模块时输入语音到输出语音的流程。

<?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 voip_call_diagram.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="10.4479in" height="6.61979in" viewbox="0 0 752.25 476.625" xml:space="preserve" color-interpolation-filters="sRGB" class="st16" aria-label="../../_images/voip_call_diagram.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-3 .st1 { fill: #ffffff; stroke: none; stroke-width: 0.25 }
.svg-3 .st2 { fill: #fafafa; stroke: #d2d7e1; stroke-width: 1.5 }
.svg-3 .st3 { fill: #ffffff; stroke: #d2d7e1; stroke-width: 2 }
.svg-3 .st4 { fill: #6280cc; stroke: none; stroke-width: 2 }
.svg-3 .st5 { fill: #ffffff; font-family: SimHei; font-size: 1.08334em }
.svg-3 .st6 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-3 .st7 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-3 .st8 { fill: none; stroke: #000000; stroke-width: 2 }
.svg-3 .st9 { marker-end: url("#mrkr4-43"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-3 .st10 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.44247787610619 }
.svg-3 .st11 { fill: none; stroke: none; stroke-width: 0.5 }
.svg-3 .st12 { fill: #000000; font-family: SimHei; font-size: 1.08334em }
.svg-3 .st13 { fill: #000000; font-family: Roboto; font-size: 1.00001em }
.svg-3 .st14 { fill: none; stroke: none; stroke-width: 2 }
.svg-3 .st15 { stroke: #000000; stroke-dasharray: 14, 10; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-3 .st16 { 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-43" class="st10" 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="4" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvThemeOrder" v:val="VT0(0):26"></v:ud>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="10.4479" height="6.61979" v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1-1" v:mid="1" v:groupcontext="shape">		<title>Solid</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="752.25" height="476.625" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<v:userdefs>		<v:ud v:nameu="msvThemeOrder" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape38-3" v:mid="38" v:groupcontext="shape" transform="translate(19.5,-19.5)">		<title>Sheet.38</title>		<rect x="0" y="39" width="713.25" height="437.625" class="st2"></rect>	</g>	<g id="shape1-5" v:mid="1" v:groupcontext="shape" transform="translate(114.9,-40.5)">		<title>Sheet.1</title>		<rect x="0" y="99.625" width="522" height="377" rx="4.5" ry="4.5" class="st3"></rect>	</g>	<g id="shape3-7" v:mid="3" v:groupcontext="shape" transform="translate(164.4,-314)">		<title>Sheet.3</title>		<desc>增益</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="36.5" y="458.03" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>增益</text>		</g>	<g id="shape4-10" v:mid="4" v:groupcontext="shape" transform="translate(164.4,-237.5)">		<title>Sheet.4</title>		<desc>增益</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="36.5" y="458.03" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>增益</text>		</g>	<g id="shape5-13" v:mid="5" v:groupcontext="shape" transform="translate(497.4,-269)">		<title>Sheet.5</title>		<desc>后处理模块</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="17" y="458.03" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>后处理模块</text>		</g>	<g id="shape6-16" v:mid="6" v:groupcontext="shape" transform="translate(339.9,-201.5)">		<title>Sheet.6</title>		<desc>Fluence</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="386.625" width="99" height="180"></v:textrect>		<rect x="0" y="296.625" width="99" height="180" rx="4.5" ry="4.5" class="st4"></rect>		<text x="28.61" y="390.23" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Fluence</text>		</g>	<g id="shape7-19" v:mid="7" v:groupcontext="shape" transform="translate(155.4,-77.95)">		<title>Sheet.7</title>		<desc>增益</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="36.5" y="458.03" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>增益</text>		</g>	<g id="shape8-22" v:mid="8" v:groupcontext="shape" transform="translate(326.4,-77.95)">		<title>Sheet.8</title>		<desc>Fluence</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="28.61" y="457.73" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Fluence</text>		</g>	<g id="shape9-25" v:mid="9" v:groupcontext="shape" transform="translate(497.4,-77.95)">		<title>Sheet.9</title>		<desc>后处理模块</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="49.5" cy="454.125" width="99" height="45"></v:textrect>		<rect x="0" y="431.625" width="99" height="45" rx="4.5" ry="4.5" class="st4"></rect>		<text x="17" y="458.03" class="st5" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>后处理模块</text>		</g>	<g id="shape12-28" v:mid="12" v:groupcontext="shape" transform="translate(555.525,122.125) rotate(90)">		<title>Sheet.12</title>		<path d="M0 476.62 L36 476.62" class="st7"></path>	</g>	<g id="shape13-31" v:mid="13" v:groupcontext="shape" transform="translate(555.525,198.625) rotate(90)">		<title>Sheet.13</title>		<path d="M0 476.62 L36 476.62" class="st7"></path>	</g>	<g id="shape15-34" v:mid="15" v:groupcontext="shape" transform="translate(79.575,-327.5)">		<title>Sheet.15</title>		<ellipse cx="9" cy="467.625" rx="9" ry="9" class="st8"></ellipse>	</g>	<g id="shape16-36" v:mid="16" v:groupcontext="shape" transform="translate(79.425,-251)">		<title>Sheet.16</title>		<ellipse cx="9" cy="467.625" rx="9" ry="9" class="st8"></ellipse>	</g>	<g id="shape17-38" v:mid="17" v:groupcontext="shape" v:layermember="0" transform="translate(97.425,-251)">		<title>Dynamic connector</title>		<path d="M0 467.62 L57.94 467.62" class="st9"></path>	</g>	<g id="shape18-44" v:mid="18" v:groupcontext="shape" v:layermember="0" transform="translate(97.5708,-327.363)">		<title>Dynamic connector.18</title>		<path d="M0 467.76 L57.79 467.52" class="st9"></path>	</g>	<g id="shape20-49" v:mid="20" v:groupcontext="shape" v:layermember="0" transform="translate(263.4,-327.5)">		<title>Dynamic connector.20</title>		<path d="M0 467.62 L67.46 467.62" class="st9"></path>	</g>	<g id="shape21-54" v:mid="21" v:groupcontext="shape" v:layermember="0" transform="translate(263.4,-251)">		<title>Dynamic connector.21</title>		<path d="M0 467.62 L67.46 467.62" class="st9"></path>	</g>	<g id="shape22-59" v:mid="22" v:groupcontext="shape" v:layermember="0" transform="translate(155.4,-111.5)">		<title>Dynamic connector.22</title>		<path d="M0 485.62 L-49.46 485.63" class="st9"></path>	</g>	<g id="shape23-64" v:mid="23" v:groupcontext="shape" v:layermember="0" transform="translate(326.4,-93.5)">		<title>Dynamic connector.23</title>		<path d="M0 467.62 L-62.96 467.62" class="st9"></path>	</g>	<g id="shape24-69" v:mid="24" v:groupcontext="shape" v:layermember="0" transform="translate(497.4,-93.5)">		<title>Dynamic connector.24</title>		<path d="M0 467.62 L-62.96 467.62" class="st9"></path>	</g>	<g id="shape25-74" v:mid="25" v:groupcontext="shape" v:layermember="0" transform="translate(654.9,-93.5)">		<title>Dynamic connector.25</title>		<path d="M0 467.63 L-49.46 467.62" class="st9"></path>	</g>	<g id="shape26-79" v:mid="26" v:groupcontext="shape" v:layermember="0" transform="translate(596.4,-300.5)">		<title>Dynamic connector.26</title>		<path d="M0 485.62 L49.46 485.63" class="st9"></path>	</g>	<g id="shape27-84" v:mid="27" v:groupcontext="shape" v:layermember="0" transform="translate(438.9,-282.5)">		<title>Dynamic connector.27</title>		<path d="M0 467.62 L49.46 467.62" class="st9"></path>	</g>	<g id="shape31-89" v:mid="31" v:groupcontext="shape" v:layermember="0" transform="translate(123.9,-102.5)">		<title>Dynamic connector.31</title>		<path d="M9 476.62 L9 359.63" class="st7"></path>	</g>	<g id="shape32-92" v:mid="32" v:groupcontext="shape" v:layermember="0" transform="translate(132.9,-210.5)">		<title>Dynamic connector.32</title>		<path d="M0 467.62 L197.96 467.62" class="st9"></path>	</g>	<g id="shape33-97" v:mid="33" v:groupcontext="shape" transform="translate(654.9,-271.05)">		<title>Sheet.33</title>		<desc>语音输出</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="38.925" cy="456.175" width="77.85" height="40.9"></v:textrect>		<rect x="0" y="435.725" width="77.85" height="40.9" class="st11"></rect>		<text x="12.92" y="460.08" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>语音输出</text>		</g>	<g id="shape35-100" v:mid="35" v:groupcontext="shape" transform="translate(654.9,-80)">		<title>Sheet.35</title>		<desc>语音输出</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="38.925" cy="456.175" width="77.85" height="40.9"></v:textrect>		<rect x="0" y="435.725" width="77.85" height="40.9" class="st11"></rect>		<text x="12.92" y="460.08" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>语音输出</text>		</g>	<g id="shape36-103" v:mid="36" v:groupcontext="shape" transform="translate(38,-80)">		<title>Sheet.36</title>		<desc>Speaker</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="29.45" cy="456.175" width="58.91" height="40.9"></v:textrect>		<rect x="0" y="435.725" width="58.9" height="40.9" class="st11"></rect>		<text x="7.83" y="459.78" class="st13" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Speaker</text>		</g>	<g id="shape37-106" v:mid="37" v:groupcontext="shape" transform="translate(332.075,-417.5)">		<title>Sheet.37</title>		<desc>Qualcomm LPAI</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="55.3375" cy="466.7" width="110.68" height="19.85"></v:textrect>		<rect x="0" y="456.775" width="110.675" height="19.85" class="st14"></rect>		<text x="12.06" y="470.3" class="st13" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Qualcomm LPAI</text>		</g>	<g id="shape39-109" v:mid="39" v:groupcontext="shape" transform="translate(548.05,-177.55)">		<title>Sheet.39</title>		<desc>传输路径</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="38.925" cy="468.65" width="77.85" height="15.95"></v:textrect>		<rect x="0" y="460.675" width="77.85" height="15.95" class="st11"></rect>		<text x="12.92" y="472.55" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>传输路径</text>		</g>	<g id="shape40-112" v:mid="40" v:groupcontext="shape" transform="translate(548.05,-147.275)">		<title>Sheet.40</title>		<desc>传输路径</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="38.925" cy="468.65" width="77.85" height="15.95"></v:textrect>		<rect x="0" y="460.675" width="77.85" height="15.95" class="st11"></rect>		<text x="12.92" y="472.55" class="st12" v:langid="2052"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>传输路径</text>		</g>	<g id="shape41-115" v:mid="41" v:groupcontext="shape" transform="translate(114.9,-171)">		<title>Sheet.41</title>		<path d="M0 476.62 L522 476.62" class="st15"></path>	</g></g>
</svg>

用于 VoIP 的 SMECNS 软件块

要在 VoIP 路径中启用 SMECNS：

| **设置记录发送端** | pw-record /opt/record_voip.wav -v --target=voip-tx0<br>    Copy to clipboard |
| --- | --- |
| **设置播放接收端** | pw-play /opt/test.wav -v --target=voip-rx0<br>    Copy to clipboard |

Note

请务必将 PCM 文件 (`<FileName>.wav`) 推送到 `/opt/` 文件夹。

Last Published: Nov 04, 2025

[Previous Topic
排除音频故障](https://docs.qualcomm.com/bundle/publicresource/80-70022-16SC/topics/troubleshoot.md) [Next Topic
参考资料](https://docs.qualcomm.com/bundle/publicresource/80-70022-16SC/topics/references.md)