# 使用 LiteRT 进行音频分类解码与显示

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/audio-classification-with-litert.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/audio-classification-with-litert.html)

该用例实现了 YAMNet LiteRT 模型对麦克风和文件源的音频样本进行分类和解码。

要停止用例，请按 CTRL + C。

## 麦克风音频样本音频分类

Note: 此用例不适用于当前版本。

在目标设备上运行此用例：

    gst-launch-1.0 -v pulsesrc ! audio/x-raw,format=S16LE ! audiobuffersplit output-buffer-size=31200 ! \
    qtimlaconverter sample-rate=16000 feature=lmfe params="params,nfft=96,nhop=160,nmels=64,chunklen=0.96;" ! queue ! \
    qtimltflite model=/etc/models/yamnet.tflite ! qtimlpostprocess module=yamnet labels=/etc/labels/yamnet.json ! \
    video/x-raw,width=640,height=360 ! queue ! waylandsink sync=false fullscreen=trueCopy to clipboard

下图显示了用例执行的流程：

Figure : 音频分类与显示 Pipeline 流
                
                <?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 pipeline_flow_audioclassification_dispaly.svg pipeline_flow_audioclassificati -->
<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="11.3021in" height="1.64793in" viewbox="0 0 813.751 118.651" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st2 { fill: #000000; font-family: Roboto; font-size: 1.00001em; font-weight: bold }
.svg-1 .st3 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st5 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st6 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st7 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st8 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-1 .st11 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-1 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_flow_audioclassificati</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375026,-0.375103)">		<title>Sheet.3</title>		<desc>GST BIN</desc>		<v:textblock v:margins="rect(7.2,0,0,0)" v:verticalalign="0"></v:textblock>		<v:textrect cx="406.5" cy="59.7006" width="813.01" height="117.901"></v:textrect>		<path d="M0 113.03 A5.62513 5.62513 -180 0 0 5.63 118.65 L807.38 118.65 A5.62513 5.62513 -180 0 0 813 113.03 L813 6.37					 A5.62513 5.62513 -180 0 0 807.38 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.37 L0 113.03 Z" class="st1"></path>		<text x="383.7" y="18.75" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GST BIN</text>		</g>	<g id="shape4-4" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M807.75 0.75 C810.65 0.75 813 3.11 813 6 L813 112.65 C813 115.55 810.65 117.9 807.75 117.9 L6 117.9 C3.11 117.9					 0.75 115.55 0.75 112.65 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L807.75 0.75 ZM807.75 0 L6 0 C2.69 0 0 2.69					 0 6 L0 112.65 C0 115.96 2.69 118.65 6 118.65 L807.75 118.65 C811.06 118.65 813.75 115.96 813.75 112.65 L813.75					 6 C813.75 2.69 811.06 0 807.75 0 Z" class="st3"></path>	</g>	<g id="shape15-6" v:mid="15" v:groupcontext="shape" transform="translate(277.502,-42)">		<title>Sheet.15</title>		<desc>qtimlaconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="56.25" cy="99.9012" width="112.51" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L109.5 118.65 A3.00007 3.00007 -180 0 0 112.5 115.65 L112.5 84.15					 A3.00007 3.00007 -180 0 0 109.5 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 -0 84.15 L0 115.65 Z" class="st4"></path>		<text x="14.29" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlaconverter</text>		</g>	<g id="shape18-9" v:mid="18" v:groupcontext="shape" transform="translate(390.002,-60.75)">		<title>Sheet.18</title>		<path d="M0 118.65 L14.44 118.65" class="st6"></path>	</g>	<g id="shape19-12" v:mid="19" v:groupcontext="shape" transform="translate(403.57,-57.7582)">		<title>Sheet.19</title>		<path d="M0 118.65 L5.18 115.66 L0 112.67 L0 118.65 Z" class="st7"></path>	</g>	<g id="shape21-14" v:mid="21" v:groupcontext="shape" transform="translate(258.751,-60.75)">		<title>Sheet.21</title>		<path d="M0 118.65 L14.44 118.65" class="st6"></path>	</g>	<g id="shape22-17" v:mid="22" v:groupcontext="shape" transform="translate(272.32,-57.7582)">		<title>Sheet.22</title>		<path d="M0 118.65 L5.18 115.66 L0 112.67 L0 118.65 Z" class="st7"></path>	</g>	<g id="shape24-19" v:mid="24" v:groupcontext="shape" transform="translate(408.752,-42)">		<title>Sheet.24</title>		<desc>qtimflite</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="56.25" cy="99.9012" width="112.51" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L109.5 118.65 A3.00007 3.00007 -180 0 0 112.5 115.65 L112.5 84.15					 A3.00007 3.00007 -180 0 0 109.5 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 0 84.15 L0 115.65 Z" class="st4"></path>		<text x="34.03" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimflite</text>		</g>	<g id="shape27-22" v:mid="27" v:groupcontext="shape" transform="translate(521.252,-60.75)">		<title>Sheet.27</title>		<path d="M0 118.65 L14.44 118.65" class="st6"></path>	</g>	<g id="shape28-25" v:mid="28" v:groupcontext="shape" transform="translate(534.82,-57.7582)">		<title>Sheet.28</title>		<path d="M0 118.65 L5.18 115.66 L0 112.67 L0 118.65 Z" class="st7"></path>	</g>	<g id="shape30-27" v:mid="30" v:groupcontext="shape" transform="translate(540.002,-42)">		<title>Sheet.30</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="63.75" cy="99.9012" width="127.51" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L124.5 118.65 A3.00007 3.00007 -180 0 0 127.5 115.65 L127.5 84.15					 A3.00007 3.00007 -180 0 0 124.5 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 -0 84.15 L0 115.65 Z" class="st4"></path>		<text x="17.04" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess</text>		</g>	<g id="shape33-30" v:mid="33" v:groupcontext="shape" transform="translate(667.502,-60.75)">		<title>Sheet.33</title>		<path d="M0 118.65 L14.44 118.65" class="st6"></path>	</g>	<g id="shape34-33" v:mid="34" v:groupcontext="shape" transform="translate(681.07,-57.7582)">		<title>Sheet.34</title>		<path d="M0 118.65 L5.18 115.66 L0 112.67 L0 118.65 Z" class="st7"></path>	</g>	<g id="shape36-35" v:mid="36" v:groupcontext="shape" transform="translate(686.252,-42)">		<title>Sheet.36</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="56.25" cy="99.9012" width="112.51" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L109.5 118.65 A3.00007 3.00007 -180 0 0 112.5 115.65 L112.5 84.15					 A3.00007 3.00007 -180 0 0 109.5 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 0 84.15 L0 115.65 Z" class="st8"></path>		<text x="22.51" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape39-38" v:mid="39" v:groupcontext="shape" transform="translate(15.0007,-42)">		<title>Sheet.39</title>		<desc>pulsesrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="99.9012" width="105.01" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L102 118.65 A3.00007 3.00007 -180 0 0 105 115.65 L105 84.15 A3.00007					 3.00007 -180 0 0 102 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 0 84.15 L0 115.65 Z" class="st8"></path>		<text x="29.83" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>pulsesrc</text>		</g>	<g id="shape42-41" v:mid="42" v:groupcontext="shape" transform="translate(120.001,-60.75)">		<title>Sheet.42</title>		<path d="M0 118.65 L14.44 118.65" class="st6"></path>	</g>	<g id="shape43-44" v:mid="43" v:groupcontext="shape" transform="translate(133.57,-57.7582)">		<title>Sheet.43</title>		<path d="M0 118.65 L5.18 115.66 L0 112.67 L0 118.65 Z" class="st7"></path>	</g>	<g id="shape45-46" v:mid="45" v:groupcontext="shape" transform="translate(138.751,-42)">		<title>Sheet.45</title>		<desc>audiobuffersplit</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="99.9012" width="120.01" height="37.5"></v:textrect>		<path d="M0 115.65 A3.00007 3.00007 -180 0 0 3 118.65 L117 118.65 A3.00007 3.00007 -180 0 0 120 115.65 L120 84.15 A3.00007					 3.00007 -180 0 0 117 81.15 L3 81.15 A3.00007 3.00007 -180 0 0 0 84.15 L0 115.65 Z" class="st8"></path>		<text x="17.79" y="103.5" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audiobuffersplit</text>		</g>	<g id="group48-49" transform="translate(688.627,-14.7814)" v:mid="48" v:groupcontext="group">		<title>Sheet.48</title>		<g id="shape7-50" v:mid="7" v:groupcontext="shape" transform="translate(15.1883,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="47.25" cy="112.351" width="94.51" height="12.6"></v:textrect>			<rect x="0" y="106.051" width="94.5" height="12.6" class="st9"></rect>			<text x="0" y="115.5" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-53" v:mid="8" v:groupcontext="shape" transform="translate(6.29496E-14,-0.21863)">			<title>Sheet.8</title>			<path d="M0 117.15 A1.50003 1.50003 -180 0 0 1.5 118.65 L10.5 118.65 A1.50003 1.50003 -180 0 0 12 117.15 L12 108.15						 A1.50003 1.50003 -180 0 0 10.5 106.65 L1.5 106.65 A1.50003 1.50003 -180 0 0 0 108.15 L0 117.15 Z" class="st4"></path>		</g>		<g id="shape10-55" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="112.351" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="106.051" width="21" height="12.6" class="st9"></rect>			<text x="0" y="115.85" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-58" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.21863)">			<title>Sheet.11</title>			<path d="M0 117.15 A1.50003 1.50003 -180 0 0 1.5 118.65 L10.5 118.65 A1.50003 1.50003 -180 0 0 12 117.15 L12 108.15						 A1.50003 1.50003 -180 0 0 10.5 106.65 L1.5 106.65 A1.50003 1.50003 -180 0 0 0 108.15 L0 117.15 Z" class="st8"></path>		</g>	</g></g>
</svg>

下表列出了 pipeline 执行的顺序处理阶段：

Table : 音频分类 Pipeline 处理

| 处理过程 | 说明 |
| --- | --- |
| [pulsesrc](https://docs.qualcomm.com/doc/80-70022-50SC/topic/pulsesrc.html) | 从麦克风采集音频流（源）。 |
| audiobuffersplit | 将传入的音频缓存分割为大小相等的块。 |
| [qtimlaconverter](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlaconverter.html) | 对音频流执行预处理，并将其转换为张量流。<br>音频分类模型使用该张量流进行推理。 |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimltflite.html) | <ol class="ol" id="audio-classification-with-litert__ol_bwn_s5l_vbc"><br>                                    <li class="li">加载模型。</li><br><br>                                    <li class="li">为选择的 delegate 修改图。</li><br><br>                                    <li class="li">在其接收端口上接收张量数据。</li><br><br>                                    <li class="li">执行推理并在其发送端口上生成包含推理结果的张量数据。</li><br><br>                                </ol> |
| qtimlpostprocess | 处理音频分类推理结果：<ol class="ol" id="audio-classification-with-litert__ol_ol3_dky_kbc"><br>                                    <li class="li">将阈值应用于所选结果数。</li><br><br>                                    <li class="li">为分类创建文本叠加。</li><br><br>                                </ol> |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50SC/topic/waylandsink.html) | <ol class="ol" id="audio-classification-with-litert__ol_c54_cp2_s2c"><br>                                    <li class="li">在其接收端口上接收视频和音频流。</li><br><br>                                    <li class="li">将流提交至 Weston。 </li><br><br>                                    <li class="li">Weston 在本地显示设备上渲染视频流及为该场景生成的分类音频。</li><br><br>                                </ol> |

## 对文件源音频样本进行分类和解码

- 使用 FLAC 解码器在目标设备上运行用例：

        gst-launch-1.0 -e --gst-debug=2 filesrc location=/etc/media/video-flac.mp4  ! qtdemux name=demux demux. ! queue ! h264parse ! \
        v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! qtivcomposer name=mixer sink_1::position="<50, 50>" sink_1::dimensions="<368, 64>" ! \
        queue ! waylandsink fullscreen=true demux. ! queue ! flacparse ! flacdec ! queue ! audioconvert ! audioresample ! \
        audiobuffersplit output-buffer-size=31200 ! queue ! qtimlaconverter  sample-rate=16000 feature=lmfe params="params,nfft=96,nhop=160,nmels=64,chunklen=0.96;" ! \
        queue ! qtimltflite name=infeng model=/etc/models/yamnet.tflite ! qtimlpostprocess name=postproc settings="{\"confidence\": 10.0}" results=3 module=yamnet \
        labels=/etc/labels/yamnet.json ! video/x-raw,format=BGRA,width=368,height=64 ! queue ! mixer.Copy to clipboard

Figure : 音频分类与解码 Pipeline 流程 - FLAC 解码器
                        
                        <?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 pipeline_flow_audioclassification_decode_flacdecoder.svg Layer_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="13.3333in" height="2.57864in" viewbox="0 0 960 185.662" xml:space="preserve" color-interpolation-filters="sRGB" class="st14"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-2 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st2 { fill: #000000; font-family: Roboto; font-size: 1.00001em; font-weight: bold }
.svg-2 .st3 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st4 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st5 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st6 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st7 { fill: #ffffff; font-family: Roboto; font-size: 0.874992em }
.svg-2 .st8 { font-size: 1em }
.svg-2 .st9 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st10 { fill: none }
.svg-2 .st11 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st12 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-2 .st13 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-2 .st14 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Layer_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="shape2-1" v:mid="2" v:groupcontext="shape" transform="translate(0.374908,-0.374931)">		<title>Sheet.2</title>		<desc>GST BIN</desc>		<v:textblock v:margins="rect(7.2,0,0,0)" v:verticalalign="0"></v:textblock>		<v:textrect cx="479.625" cy="93.2059" width="959.26" height="184.912"></v:textrect>		<path d="M0 180.04 A5.62513 5.62513 -180 0 0 5.62 185.66 L953.63 185.66 A5.62513 5.62513 -180 0 0 959.25 180.04 L959.25					 6.38 A5.62513 5.62513 -180 0 0 953.63 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.38 L0 180.04 Z" class="st1"></path>		<text x="456.83" y="18.75" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GST BIN</text>		</g>	<g id="shape3-4" v:mid="3" v:groupcontext="shape">		<title>Sheet.3</title>		<path d="M954 0.75 C956.89 0.75 959.25 3.11 959.25 6 L959.25 179.66 C959.25 182.56 956.89 184.91 954 184.91 L6 184.91					 C3.11 184.91 0.75 182.56 0.75 179.66 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L954 0.75 ZM954 0 L6 0 C2.69 0					 0 2.69 0 6 L0 179.66 C0 182.98 2.69 185.66 6 185.66 L954 185.66 C957.31 185.66 960 182.98 960 179.66 L960					 6 C960 2.69 957.31 0 954 0 Z" class="st3"></path>	</g>	<g id="shape6-6" v:mid="6" v:groupcontext="shape" transform="translate(89.625,-126.353)">		<title>Sheet.6</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape7-9" v:mid="7" v:groupcontext="shape" transform="translate(103.194,-123.361)">		<title>Sheet.7</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape9-11" v:mid="9" v:groupcontext="shape" transform="translate(183.75,-126.353)">		<title>Sheet.9</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape10-14" v:mid="10" v:groupcontext="shape" transform="translate(197.319,-123.361)">		<title>Sheet.10</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape12-16" v:mid="12" v:groupcontext="shape" transform="translate(277.125,-126.353)">		<title>Sheet.12</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape13-19" v:mid="13" v:groupcontext="shape" transform="translate(290.694,-123.361)">		<title>Sheet.13</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape15-21" v:mid="15" v:groupcontext="shape" transform="translate(386.25,-126.353)">		<title>Sheet.15</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape16-24" v:mid="16" v:groupcontext="shape" transform="translate(399.819,-123.361)">		<title>Sheet.16</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape18-26" v:mid="18" v:groupcontext="shape" transform="translate(494.625,-126.353)">		<title>Sheet.18</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape19-29" v:mid="19" v:groupcontext="shape" transform="translate(508.194,-123.361)">		<title>Sheet.19</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape21-31" v:mid="21" v:groupcontext="shape" transform="translate(603,-126.353)">		<title>Sheet.21</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape22-34" v:mid="22" v:groupcontext="shape" transform="translate(616.569,-123.361)">		<title>Sheet.22</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape24-36" v:mid="24" v:groupcontext="shape" transform="translate(712.125,-126.353)">		<title>Sheet.24</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape25-39" v:mid="25" v:groupcontext="shape" transform="translate(725.694,-123.361)">		<title>Sheet.25</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape27-41" v:mid="27" v:groupcontext="shape" transform="translate(820.727,-126.353)">		<title>Sheet.27</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape28-44" v:mid="28" v:groupcontext="shape" transform="translate(834.295,-123.361)">		<title>Sheet.28</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape29-46" v:mid="29" v:groupcontext="shape" transform="translate(15,-108.529)">		<title>Sheet.29</title>		<desc>audio capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="24.52" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audio<v:newlinechar></v:newlinechar><tspan x="15.6" dy="1.329em" class="st8">capsfilter</tspan></text>		</g>	<g id="shape31-50" v:mid="31" v:groupcontext="shape" transform="translate(108.75,-108.529)">		<title>Sheet.31</title>		<desc>flacparse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="15.73" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>flacparse</text>		</g>	<g id="shape33-53" v:mid="33" v:groupcontext="shape" transform="translate(202.5,-108.529)">		<title>Sheet.33</title>		<desc>flacdec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="20.31" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>flacdec</text>		</g>	<g id="shape35-56" v:mid="35" v:groupcontext="shape" transform="translate(296.25,-108.529)">		<title>Sheet.35</title>		<desc>audioconvert</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="14.57" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audioconvert</text>		</g>	<g id="shape37-59" v:mid="37" v:groupcontext="shape" transform="translate(405,-108.529)">		<title>Sheet.37</title>		<desc>audioresample</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="10.3" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audioresample</text>		</g>	<g id="shape39-62" v:mid="39" v:groupcontext="shape" transform="translate(513.75,-108.529)">		<title>Sheet.39</title>		<desc>audiobuffersplit</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="8.06" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audiobuffersplit</text>		</g>	<g id="shape41-65" v:mid="41" v:groupcontext="shape" transform="translate(622.5,-108.529)">		<title>Sheet.41</title>		<desc>qtimlaconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="8.28" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlaconverter</text>		</g>	<g id="shape43-68" v:mid="43" v:groupcontext="shape" transform="translate(731.25,-108.529)">		<title>Sheet.43</title>		<desc>qtimltflite</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="22.57" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite</text>		</g>	<g id="shape45-71" v:mid="45" v:groupcontext="shape" transform="translate(840,-108.529)">		<title>Sheet.45</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="166.912" width="105.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L102 185.66 A3.00007 3.00007 -180 0 0 105 182.66 L105 151.16 A3.00007					 3.00007 -180 0 0 102 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st9"></path>		<text x="11.63" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess</text>		</g>	<g id="shape48-74" v:mid="48" v:groupcontext="shape" transform="translate(89.625,-59.8236)">		<title>Sheet.48</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape49-77" v:mid="49" v:groupcontext="shape" transform="translate(103.194,-56.8318)">		<title>Sheet.49</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape51-79" v:mid="51" v:groupcontext="shape" transform="translate(183.75,-59.8236)">		<title>Sheet.51</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape52-82" v:mid="52" v:groupcontext="shape" transform="translate(197.319,-56.8318)">		<title>Sheet.52</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape54-84" v:mid="54" v:groupcontext="shape" transform="translate(277.125,-59.8236)">		<title>Sheet.54</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape55-87" v:mid="55" v:groupcontext="shape" transform="translate(290.694,-56.8318)">		<title>Sheet.55</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape57-89" v:mid="57" v:groupcontext="shape" transform="translate(386.25,-59.8236)">		<title>Sheet.57</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape58-92" v:mid="58" v:groupcontext="shape" transform="translate(399.819,-56.8318)">		<title>Sheet.58</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape60-94" v:mid="60" v:groupcontext="shape" transform="translate(494.625,-59.8236)">		<title>Sheet.60</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape61-97" v:mid="61" v:groupcontext="shape" transform="translate(508.194,-56.8318)">		<title>Sheet.61</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape63-99" v:mid="63" v:groupcontext="shape" transform="translate(603,-59.8236)">		<title>Sheet.63</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape64-102" v:mid="64" v:groupcontext="shape" transform="translate(616.569,-56.8318)">		<title>Sheet.64</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape65-104" v:mid="65" v:groupcontext="shape" transform="translate(15,-42)">		<title>Sheet.65</title>		<desc>filesrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="23.12" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesrc</text>		</g>	<g id="shape67-107" v:mid="67" v:groupcontext="shape" transform="translate(108.75,-42)">		<title>Sheet.67</title>		<desc>qtdemux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="16.96" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtdemux</text>		</g>	<g id="shape69-110" v:mid="69" v:groupcontext="shape" transform="translate(202.5,-42)">		<title>Sheet.69</title>		<desc>video capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="24.95" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>video<v:newlinechar></v:newlinechar><tspan x="15.6" dy="1.329em" class="st8">capsfilter</tspan></text>		</g>	<g id="shape71-114" v:mid="71" v:groupcontext="shape" transform="translate(296.25,-42)">		<title>Sheet.71</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="20.2" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape73-117" v:mid="73" v:groupcontext="shape" transform="translate(405,-42)">		<title>Sheet.73</title>		<desc>v4l2h264dec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="15.06" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264dec</text>		</g>	<g id="shape75-120" v:mid="75" v:groupcontext="shape" transform="translate(513.75,-42)">		<title>Sheet.75</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="12.94" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape77-123" v:mid="77" v:groupcontext="shape" transform="translate(622.5,-42)">		<title>Sheet.77</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="15.48" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape80-126" v:mid="80" v:groupcontext="shape" transform="translate(47.8108,-79.5)">		<title>Sheet.80</title>		<path d="M0 160.94 L0 171.15 L98.44 171.15 L98.44 185.66 L0 160.94 Z" class="st10"></path>		<path d="M0 160.94 L0 171.15 L98.44 171.15 L98.44 185.66" class="st4"></path>	</g>	<g id="shape81-129" v:mid="81" v:groupcontext="shape" transform="translate(44.819,-103.348)">		<title>Sheet.81</title>		<path d="M0 185.66 L2.99 180.48 L5.98 185.66 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape83-131" v:mid="83" v:groupcontext="shape" transform="translate(558.75,-83.8058)">		<title>Sheet.83</title>		<path d="M0 185.66 L0 175.45 L333.82 175.45 L333.82 160.94 L0 185.66 Z" class="st10"></path>		<path d="M0 185.66 L0 175.45 L333.82 175.45 L333.82 160.94" class="st4"></path>	</g>	<g id="shape84-134" v:mid="84" v:groupcontext="shape" transform="translate(555.758,-79.5)">		<title>Sheet.84</title>		<path d="M5.98 180.48 L2.99 185.66 L0 180.48 L5.98 180.48 Z" class="st5"></path>	</g>	<g id="group94-136" transform="translate(834.875,-14.7814)" v:mid="94" v:groupcontext="group">		<title>Sheet.94</title>		<g id="shape87-137" v:mid="87" v:groupcontext="shape" transform="translate(15.1882,2.84217E-14)">			<title>Sheet.87</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="27.6195" cy="179.362" width="55.24" height="12.6"></v:textrect>			<rect x="0" y="173.062" width="55.2391" height="12.6" class="st11"></rect>			<text x="0" y="182.51" class="st12" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape88-140" v:mid="88" v:groupcontext="shape" transform="translate(1.26898E-13,-0.218619)">			<title>Sheet.88</title>			<path d="M0 184.16 A1.50003 1.50003 -180 0 0 1.5 185.66 L10.5 185.66 A1.50003 1.50003 -180 0 0 12 184.16 L12 175.16						 A1.50003 1.50003 -180 0 0 10.5 173.66 L1.5 173.66 A1.50003 1.50003 -180 0 0 0 175.16 L0 184.16 Z" class="st9"></path>		</g>		<g id="shape90-142" v:mid="90" v:groupcontext="shape" transform="translate(89.1246,2.84217E-14)">			<title>Sheet.90</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="179.362" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="173.062" width="21" height="12.6" class="st11"></rect>			<text x="0" y="182.86" class="st13" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape91-145" v:mid="91" v:groupcontext="shape" transform="translate(73.9363,-0.218619)">			<title>Sheet.91</title>			<path d="M0 184.16 A1.50003 1.50003 -180 0 0 1.5 185.66 L10.5 185.66 A1.50003 1.50003 -180 0 0 12 184.16 L12 175.16						 A1.50003 1.50003 -180 0 0 10.5 173.66 L1.5 173.66 A1.50003 1.50003 -180 0 0 0 175.16 L0 184.16 Z" class="st6"></path>		</g>	</g></g>
</svg>
- 使用 mpg123audiodec 解码器在目标设备上运行用例：

        gst-launch-1.0 -e --gst-debug=2 \
        filesrc location=/etc/media/video-mp3.mp4 ! qtdemux name=demux demux. ! queue ! h264parse ! v4l2h264dec  capture-io-mode=4 output-io-mode=4 ! \
        video/x-raw, format=NV12 ! qtivcomposer name=mixer  sink_1::position="<50, 50>" sink_1::dimensions="<368, 64>" !  queue  ! \
        waylandsink fullscreen=true demux. ! queue !  mpegaudioparse ! mpg123audiodec ! audioconvert ! audioresample !  \
        audiobuffersplit output-buffer-size=31200 ! queue ! qtimlaconverter  sample-rate=16000  !  queue ! \
        qtimltflite name=infeng model=/etc/models/yamnet.tflite   !  qtimlpostprocess name=postproc settings="{\"confidence\": 10.0}"  \
        results=3 module=yamnet labels=/etc/labels/yamnet.json ! video/x-raw,format=BGRA,width=368,height=64 ! queue ! mixer.Copy to clipboard

Figure : 音频分类与解码 Pipeline 流程 - mpg123audiodec 解码器
                        
                        <?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 pipeline_flow_audioclassification_decode_mpg123decoder.svg Layer_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="13.3333in" height="2.57864in" viewbox="0 0 960 185.662" xml:space="preserve" color-interpolation-filters="sRGB" class="st14"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-3 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st2 { fill: #000000; font-family: Roboto; font-size: 1.00001em; font-weight: bold }
.svg-3 .st3 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st4 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st5 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st6 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st7 { fill: #ffffff; font-family: Roboto; font-size: 0.874992em }
.svg-3 .st8 { font-size: 1em }
.svg-3 .st9 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st10 { fill: none }
.svg-3 .st11 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st12 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-3 .st13 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-3 .st14 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Layer_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="shape2-1" v:mid="2" v:groupcontext="shape" transform="translate(0.374908,-0.374931)">		<title>Sheet.2</title>		<desc>GST BIN</desc>		<v:textblock v:margins="rect(7.2,0,0,0)" v:verticalalign="0"></v:textblock>		<v:textrect cx="479.625" cy="93.2059" width="959.26" height="184.912"></v:textrect>		<path d="M0 180.04 A5.62513 5.62513 -180 0 0 5.62 185.66 L953.63 185.66 A5.62513 5.62513 -180 0 0 959.25 180.04 L959.25					 6.38 A5.62513 5.62513 -180 0 0 953.63 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.38 L0 180.04 Z" class="st1"></path>		<text x="456.83" y="18.75" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>GST BIN</text>		</g>	<g id="shape3-4" v:mid="3" v:groupcontext="shape">		<title>Sheet.3</title>		<path d="M954 0.75 C956.89 0.75 959.25 3.11 959.25 6 L959.25 179.66 C959.25 182.56 956.89 184.91 954 184.91 L6 184.91					 C3.11 184.91 0.75 182.56 0.75 179.66 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L954 0.75 ZM954 0 L6 0 C2.69 0					 0 2.69 0 6 L0 179.66 C0 182.98 2.69 185.66 6 185.66 L954 185.66 C957.31 185.66 960 182.98 960 179.66 L960					 6 C960 2.69 957.31 0 954 0 Z" class="st3"></path>	</g>	<g id="shape6-6" v:mid="6" v:groupcontext="shape" transform="translate(89.625,-126.353)">		<title>Sheet.6</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape7-9" v:mid="7" v:groupcontext="shape" transform="translate(103.194,-123.361)">		<title>Sheet.7</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape9-11" v:mid="9" v:groupcontext="shape" transform="translate(183.75,-126.353)">		<title>Sheet.9</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape10-14" v:mid="10" v:groupcontext="shape" transform="translate(197.319,-123.361)">		<title>Sheet.10</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape12-16" v:mid="12" v:groupcontext="shape" transform="translate(277.125,-126.353)">		<title>Sheet.12</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape13-19" v:mid="13" v:groupcontext="shape" transform="translate(290.694,-123.361)">		<title>Sheet.13</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape15-21" v:mid="15" v:groupcontext="shape" transform="translate(386.25,-126.353)">		<title>Sheet.15</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape16-24" v:mid="16" v:groupcontext="shape" transform="translate(399.819,-123.361)">		<title>Sheet.16</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape18-26" v:mid="18" v:groupcontext="shape" transform="translate(494.625,-126.353)">		<title>Sheet.18</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape19-29" v:mid="19" v:groupcontext="shape" transform="translate(508.194,-123.361)">		<title>Sheet.19</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape21-31" v:mid="21" v:groupcontext="shape" transform="translate(603,-126.353)">		<title>Sheet.21</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape22-34" v:mid="22" v:groupcontext="shape" transform="translate(616.569,-123.361)">		<title>Sheet.22</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape24-36" v:mid="24" v:groupcontext="shape" transform="translate(712.125,-126.353)">		<title>Sheet.24</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape25-39" v:mid="25" v:groupcontext="shape" transform="translate(725.694,-123.361)">		<title>Sheet.25</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape27-41" v:mid="27" v:groupcontext="shape" transform="translate(820.727,-126.353)">		<title>Sheet.27</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape28-44" v:mid="28" v:groupcontext="shape" transform="translate(834.295,-123.361)">		<title>Sheet.28</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape29-46" v:mid="29" v:groupcontext="shape" transform="translate(15,-108.529)">		<title>Sheet.29</title>		<desc>audio capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="24.52" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audio<v:newlinechar></v:newlinechar><tspan x="15.6" dy="1.329em" class="st8">capsfilter</tspan></text>		</g>	<g id="shape31-50" v:mid="31" v:groupcontext="shape" transform="translate(108.75,-108.529)">		<title>Sheet.31</title>		<desc>mpegaudio parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="11.25" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mpegaudio<v:newlinechar></v:newlinechar><tspan x="24.43" dy="1.329em" class="st8">parse</tspan></text>		</g>	<g id="shape33-54" v:mid="33" v:groupcontext="shape" transform="translate(202.5,-108.529)">		<title>Sheet.33</title>		<desc>mpg123 audiodec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="18.16" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mpg123<v:newlinechar></v:newlinechar><tspan x="16.03" dy="1.329em" class="st8">audiodec</tspan></text>		</g>	<g id="shape35-58" v:mid="35" v:groupcontext="shape" transform="translate(296.25,-108.529)">		<title>Sheet.35</title>		<desc>audioconvert</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="14.57" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audioconvert</text>		</g>	<g id="shape37-61" v:mid="37" v:groupcontext="shape" transform="translate(405,-108.529)">		<title>Sheet.37</title>		<desc>audioresample</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="10.3" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audioresample</text>		</g>	<g id="shape39-64" v:mid="39" v:groupcontext="shape" transform="translate(513.75,-108.529)">		<title>Sheet.39</title>		<desc>audiobuffersplit</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="8.06" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>audiobuffersplit</text>		</g>	<g id="shape41-67" v:mid="41" v:groupcontext="shape" transform="translate(622.5,-108.529)">		<title>Sheet.41</title>		<desc>qtimlaconverter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="8.28" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlaconverter</text>		</g>	<g id="shape43-70" v:mid="43" v:groupcontext="shape" transform="translate(731.25,-108.529)">		<title>Sheet.43</title>		<desc>qtimltflite</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="22.57" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimltflite</text>		</g>	<g id="shape45-73" v:mid="45" v:groupcontext="shape" transform="translate(840,-108.529)">		<title>Sheet.45</title>		<desc>qtimlpostprocess</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="166.912" width="105.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L102 185.66 A3.00007 3.00007 -180 0 0 105 182.66 L105 151.16 A3.00007					 3.00007 -180 0 0 102 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st9"></path>		<text x="11.63" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtimlpostprocess</text>		</g>	<g id="shape48-76" v:mid="48" v:groupcontext="shape" transform="translate(89.625,-59.8236)">		<title>Sheet.48</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape49-79" v:mid="49" v:groupcontext="shape" transform="translate(103.194,-56.8318)">		<title>Sheet.49</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape51-81" v:mid="51" v:groupcontext="shape" transform="translate(183.75,-59.8236)">		<title>Sheet.51</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape52-84" v:mid="52" v:groupcontext="shape" transform="translate(197.319,-56.8318)">		<title>Sheet.52</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape54-86" v:mid="54" v:groupcontext="shape" transform="translate(277.125,-59.8236)">		<title>Sheet.54</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape55-89" v:mid="55" v:groupcontext="shape" transform="translate(290.694,-56.8318)">		<title>Sheet.55</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape57-91" v:mid="57" v:groupcontext="shape" transform="translate(386.25,-59.8236)">		<title>Sheet.57</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape58-94" v:mid="58" v:groupcontext="shape" transform="translate(399.819,-56.8318)">		<title>Sheet.58</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape60-96" v:mid="60" v:groupcontext="shape" transform="translate(494.625,-59.8236)">		<title>Sheet.60</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape61-99" v:mid="61" v:groupcontext="shape" transform="translate(508.194,-56.8318)">		<title>Sheet.61</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape63-101" v:mid="63" v:groupcontext="shape" transform="translate(603,-59.8236)">		<title>Sheet.63</title>		<path d="M0 185.66 L14.44 185.66" class="st4"></path>	</g>	<g id="shape64-104" v:mid="64" v:groupcontext="shape" transform="translate(616.569,-56.8318)">		<title>Sheet.64</title>		<path d="M0 185.66 L5.18 182.67 L0 179.68 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape65-106" v:mid="65" v:groupcontext="shape" transform="translate(15,-42)">		<title>Sheet.65</title>		<desc>filesrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="23.12" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesrc</text>		</g>	<g id="shape67-109" v:mid="67" v:groupcontext="shape" transform="translate(108.75,-42)">		<title>Sheet.67</title>		<desc>qtdemux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="16.96" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtdemux</text>		</g>	<g id="shape69-112" v:mid="69" v:groupcontext="shape" transform="translate(202.5,-42)">		<title>Sheet.69</title>		<desc>video capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="37.5" cy="166.912" width="75.01" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L72 185.66 A3.00007 3.00007 -180 0 0 75 182.66 L75 151.16 A3.00007					 3.00007 -180 0 0 72 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 0 151.16 L0 182.66 Z" class="st6"></path>		<text x="24.95" y="162.86" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>video<v:newlinechar></v:newlinechar><tspan x="15.6" dy="1.329em" class="st8">capsfilter</tspan></text>		</g>	<g id="shape71-116" v:mid="71" v:groupcontext="shape" transform="translate(296.25,-42)">		<title>Sheet.71</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="20.2" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape73-119" v:mid="73" v:groupcontext="shape" transform="translate(405,-42)">		<title>Sheet.73</title>		<desc>v4l2h264dec</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="15.06" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264dec</text>		</g>	<g id="shape75-122" v:mid="75" v:groupcontext="shape" transform="translate(513.75,-42)">		<title>Sheet.75</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st9"></path>		<text x="12.94" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape77-125" v:mid="77" v:groupcontext="shape" transform="translate(622.5,-42)">		<title>Sheet.77</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="45" cy="166.912" width="90" height="37.5"></v:textrect>		<path d="M0 182.66 A3.00007 3.00007 -180 0 0 3 185.66 L87 185.66 A3.00007 3.00007 -180 0 0 90 182.66 L90 151.16 A3.00007					 3.00007 -180 0 0 87 148.16 L3 148.16 A3.00007 3.00007 -180 0 0 -0 151.16 L0 182.66 Z" class="st6"></path>		<text x="15.48" y="170.51" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape80-128" v:mid="80" v:groupcontext="shape" transform="translate(47.8108,-79.5)">		<title>Sheet.80</title>		<path d="M0 160.94 L0 171.15 L98.44 171.15 L98.44 185.66 L0 160.94 Z" class="st10"></path>		<path d="M0 160.94 L0 171.15 L98.44 171.15 L98.44 185.66" class="st4"></path>	</g>	<g id="shape81-131" v:mid="81" v:groupcontext="shape" transform="translate(44.819,-103.348)">		<title>Sheet.81</title>		<path d="M0 185.66 L2.99 180.48 L5.98 185.66 L0 185.66 Z" class="st5"></path>	</g>	<g id="shape83-133" v:mid="83" v:groupcontext="shape" transform="translate(558.75,-83.8058)">		<title>Sheet.83</title>		<path d="M0 185.66 L0 175.45 L333.82 175.45 L333.82 160.94 L0 185.66 Z" class="st10"></path>		<path d="M0 185.66 L0 175.45 L333.82 175.45 L333.82 160.94" class="st4"></path>	</g>	<g id="shape84-136" v:mid="84" v:groupcontext="shape" transform="translate(555.758,-79.5)">		<title>Sheet.84</title>		<path d="M5.98 180.48 L2.99 185.66 L0 180.48 L5.98 180.48 Z" class="st5"></path>	</g>	<g id="group94-138" transform="translate(834.875,-14.7814)" v:mid="94" v:groupcontext="group">		<title>Sheet.94</title>		<g id="shape87-139" v:mid="87" v:groupcontext="shape" transform="translate(15.1882,2.84217E-14)">			<title>Sheet.87</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="27.6195" cy="179.362" width="55.24" height="12.6"></v:textrect>			<rect x="0" y="173.062" width="55.2391" height="12.6" class="st11"></rect>			<text x="0" y="182.51" class="st12" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape88-142" v:mid="88" v:groupcontext="shape" transform="translate(1.26898E-13,-0.218619)">			<title>Sheet.88</title>			<path d="M0 184.16 A1.50003 1.50003 -180 0 0 1.5 185.66 L10.5 185.66 A1.50003 1.50003 -180 0 0 12 184.16 L12 175.16						 A1.50003 1.50003 -180 0 0 10.5 173.66 L1.5 173.66 A1.50003 1.50003 -180 0 0 0 175.16 L0 184.16 Z" class="st9"></path>		</g>		<g id="shape90-144" v:mid="90" v:groupcontext="shape" transform="translate(89.1246,2.84217E-14)">			<title>Sheet.90</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="179.362" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="173.062" width="21" height="12.6" class="st11"></rect>			<text x="0" y="182.86" class="st13" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape91-147" v:mid="91" v:groupcontext="shape" transform="translate(73.9363,-0.218619)">			<title>Sheet.91</title>			<path d="M0 184.16 A1.50003 1.50003 -180 0 0 1.5 185.66 L10.5 185.66 A1.50003 1.50003 -180 0 0 12 184.16 L12 175.16						 A1.50003 1.50003 -180 0 0 10.5 173.66 L1.5 173.66 A1.50003 1.50003 -180 0 0 0 175.16 L0 184.16 Z" class="st6"></path>		</g>	</g></g>
</svg>

下表列出了 pipeline 执行的顺序处理阶段：

Table : 使用 FLAC 和 mpg123 音频解码器的音频分类 Pipeline 阶段

| 插件 | 说明 |
| --- | --- |
| 文件源：filesrc | 采集视频和音频流，然后使用 qtdemux 对视频流进行解复用。 |
| 音频和视频 capsfilter | 确保视频和音频流格式正确。 |
| <ul class="ul" id="audio-classification-with-litert__ul_asb_ww2_s2c"><br>                                    <li class="li">音频：mpegaudioparse 或 flacparse </li><br><br>                                    <li class="li">视频：h264parse</li><br><br>                                </ul> | 解析音频和 H.264 视频。 |
| <ul class="ul" id="audio-classification-with-litert__ul_zyx_zw2_s2c"><br>                                    <li class="li">音频：mpg123audiodec 或 flacdec</li><br><br>                                    <li class="li">视频：<a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/v4l2h264dec.html">v4l2h264dec</a></li><br><br>                                </ul> | 解码音频和视频。 |
| audioconvert | 对音频缓存在各种可能的格式之间进行转换。 |
| audioresample | 将音频缓存重采样为不同的采样率。 |
| audiobuffersplit | 将传入的音频缓存分割为大小相等的块。 |
| [qtimlaconverter](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimlaconverter.html) | 对音频流执行预处理，并将其转换为张量流。<br>音频分类模型使用该张量流进行推理。 |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtimltflite.html) | 使用 YAMNet 模型执行推理。 |
| qtimlpostprocess | 处理音频分类推理结果：<ol class="ol" id="audio-classification-with-litert__ol_fz3_fw2_s2c"><br>                                    <li class="li">将阈值应用于所选结果数。</li><br><br>                                    <li class="li">为分类创建文本叠加。</li><br><br>                                </ol> |
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivcomposer.html) | 将分类结果的文本叠加与视频预览合并。 |
| [Waylandsink](https://docs.qualcomm.com/doc/80-70022-50SC/topic/waylandsink.html) | <ol class="ol" id="audio-classification-with-litert__ol_kjr_fvr_lbc"><br>                                    <li class="li">Waylandsink 将其接收端口上接收的视频流提交给 Weston。</li><br><br>                                    <li class="li">Weston 在本地显示器上渲染视频流。</li><br><br>                                </ol> |

## 相关信息

[音频分类](https://docs.qualcomm.com/doc/80-70022-50SC/topic/audio-classification.html)

**Parent Topic:** [LiteRT 用例](https://docs.qualcomm.com/doc/80-70022-50SC/topic/tensorflow-lite-use-cases.html)

Last Published: Nov 05, 2025

[Previous Topic
使用 LiteRT 进行图像分类和编码](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/single-camera-stream-with-image-classification-and-encode.md) [Next Topic
使用 LiteRT 进行目标检测和显示](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/single-camera-stream-with-object-detection-and-display.md)