GStreamer插件编写,引入TensorFlow模型
·
openwit
最近有个调研性需求,在媒体服务器测引入机器学习相关模型进行降噪处理。为此编写了一个GStreamer插件用于降噪测试,采用开源模型,降噪效果不错,但是资源占用率较高,后续如果采用服务侧降噪需要进一步进行轻量化处理。 有编写Gstreamer插件需求的同学可以参考。完整代码:https://github.com/ilei131/gst-plugin-tensorflow
编译环境:
Ubuntu22.04(Windows10 Hyper-V虚拟机)
安装GStreamer插件和编译工具:
sudo apt install -y gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev build-essential
安装libtensorflowlite依赖
拷贝tflite-dist/include下的内容到/usr/local/include, 拷贝tflite-dist/libs/linux_x64的内容到/usr/local/lib, 然后更新系统库:
sudo ldconfig
编译插件:
编译前请按需修改filter.cpp文件中模型的加载路径,改为实际路径,然后执行:
make
拷贝插件:
cp libgstaudiodenoise.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstaudiodenoise.so
测试命令:
gst-launch-1.0 filesrc location=source.pcm ! audiodenoise ! filesink location=target.pcm
项目使用的开源模型为:
https://github.com/FragrantRookie/Realtime_Skip_Dpcrn_Tflite_Denoise