他让我看重采样

news2024/11/19 8:29:35

周末邓总让我帮忙看下重采样的代码,然后我就用上了自己的神器。

我的神器就是Google

b5f196abe31bcba3464bfc4f9520400b.png

之后总结了下代码,完整的代码可以往下看,我们平时也会用到重采样,通道转换、交织和非交织的相互转换、给音频重新map等等。

这些都是做音频需要搞的东西,这可能和驱动还不太一样,驱动需要了解传输的协议,需要搞定寄存器,需要用示波器量清楚你的信号,需要对platform dai部分有了解等等。

f01ad2e8c6fd09a5bd61ddfe4ed8183f.png

如果是把低采样率重采样成高采样率,那势必会导致音频数据的增大,这个时候就一定要搞清楚自己要用多大的buff,而且低采样率重采样成高采样率是有一定的处理要求的,相当于做原来没有的两个点之间插上新的数据点。

c16a60d866ca16cf805435eb1f86a646.png

如果是高采样降低成低采样,从软件处理上会相对好处理一些,相当于把一些多余的数据给丢弃掉,只保留对应采样点上的数据。

5c28041e5328712f4a9f6a4a32c4c69f.png

下面是网上找的代码,并自己验证


github:

https://github.com/weiqifa0/c_resample

里面写了一些介绍

# c_resample

======================

代码来自并做了一些修改,降噪只能支持8k和16k

https://www.cnblogs.com/cpuimage/

# 编译

make

# 运行

./main_resample 8000hz_1ch_16bit.wav out.wav 44100

./main_noise noise_16k_16bit_1ch.wav 3

# 生成的文件

8000hz_1ch_16bit_out.wav

noise_16k_16bit_1ch_out.wav


重采样前的音频

068b29d36ba153e8c77eec6b417b7b41.png

输入8K

输出48K


之后看了这个博主有一个降噪的案例

https://www.cnblogs.com/cpuimage/p/8905965.html

音频降噪算法,网上公开的算法不多,资源也比较有限。还是谷歌做了好事,把WebRTC开源,确实是一个基础。前人种树,后人乘凉。花了点时间,把WebRTC的噪声抑制模块提取出来,方便他人。噪声抑制在WebRTC中有两个版本,一个是浮点,一个是定点。一般定点做法是为了在一些特定环境下牺牲极少的精度,提升计算性能。这个就不展开了,涉及到算法性能优化方面的一些知识点。

降噪前

降噪后

听了下音频,感觉降噪的效果不大,可能这个不是消噪,而是降低底噪。

ed4b4973830c2d988a3e42456a77df8a.png

ca17d0c5c4c398db678a6e2430aee0d1.png

好了,就这些

希望给做音视频的人一些帮助

8f218e8ffb01e228701ef77f47b029f0.jpeg

7c20cda1722907b2f5b7cb2c160c6bd7.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(红帽系统)redhat7.2 相关服务器配置

远程连接服务器配置 简介 使用SSH可以在本地主机和远程服务器之间进行加密的传输数据,实现数据的安全传输。而OpenSSH是SSH协议的免费开源实现,它采用安全加密的网络连接工具代替了telnet、ftp等 实现步骤 第一步 进入红帽系统 第二步 检查安装系统时…

需求处理的流程及问题挑战

本文主要讲需求的一般处理流程,以及可能存在的问题及挑战。 一、需求处理流程: 1、需求的生命周期: 起点是提需求,终点是拒绝或接受需求。每个人希望自己的需求能被接受或满足,但资源总是有限的。每个需求从产生到实…

SRM系统的国内品牌前五名是哪几家,大概价位是多少?

SRM系统的国内品牌前五名是哪几家,大概价位是多少?SRM系统是采购数字化转型过程中的产物,SRM系统与ERP与SCM系统打通后,能够破除信息壁垒,增加采购部门与业务部门的沟通效率,从而实现企业人、物、财成本的降…

JavaSE——多线程详细

目录 一、多线程 1.1 基本介绍 1.2 进程和线程的关系 1.3 多线程并发概念 二、实现线程的方式 2.1 继承Thread类 2.2 实现java.lang.Runnable接口 2.3 匿名类 2.4 实现Callable接口(JDK8新特性) 2.5 run和start的区别 2.6 线程声明周期 三、…

双非本科怎么了,照样拿到阿里 offer! 分享阿里技术四面 + 交叉面 +HR 面难忘经历

说一下 java 类加载器的工作机制?类加载在哪个区域进行的? 说一下 java 的线程模型? violate 了解吗?它的原理是什么?violate 是线程安全的吗? 保证线程安全的解决方法有哪些?说一说读写锁吧…

前端高频手写面试题总结

实现字符串的repeat方法 输入字符串s,以及其重复的次数,输出重复的结果,例如输入abc,2,输出abcabc。 function repeat(s, n) {return (new Array(n 1)).join(s); }递归: function repeat(s, n) {return…

通过 JFR 与日志深入探索 JVM - TLAB 原理详解

什么是 TLAB? TLAB(Thread Local Allocation Buffer)线程本地分配缓存区,这是一个线程专用的内存分配区域。既然是一个内存分配区域,我们就先要搞清楚 Java 内存大概是如何分配的。 我们一般认为 Java 中 new 的对象…

模板模式

文章目录思考模板模式1.模板模式的本质2.何时选用模板模式3.优缺点4.模板方法的结构5.实现思考模板模式 模板模式其实就是抽离共用方法到抽象类中,然后再规定其具体实现步骤 1.模板模式的本质 模板方法模式的本质:固定算法骨架。 模板方法模式主要是通过制定模板&am…

系统集成企业需具备哪些证书?

IT信息化企业,系统集成企业需要做的资质证书有哪些?经常遇到有新成立的系统集成商问智达鑫业小编,该申请哪些企业资质,接下来了小编整理下目前市场上使用频率比较高的一些资质证书,大家可以参考下。 信息系统建设和服务…

A-Level考试常见问题综合解答

关于A Level的Q&A 问:参加A Level的考试与其他考试相比有什么优势吗? 答:A Level考试的门数相较其他国际课程更少,学生有更多的时间花费在每门课上取得更好的GPA和最终成绩。问:就读的学校就直接提供A Level课程&a…

jmeter断言

jmeter断言常用的有响应断言和json断言; 常用的响应断言: 1.字符串:如果响应中包含了指定的字符串,判断为成功,不支持正则表达式;如下图: 2.包括:如果响应中包含了指定的字符串&…

mac清空废纸篓怎么恢复?

众所周知,电脑只要在运行都会产生一些临时文件或者文档,而这些文件会存放在电脑的存储空间里,方便我们后续的使用。当Mac中存储的文件过多时,就会影响到我们的正常使用,只有通过清理电脑文件,来释放更多的存…

【JavaWeb开发-Servlet】拾起海中的漂流瓶超强版

目录 原版: 一、思路: 二、实现: 三、资源分享 四、部署服务器时记得修改文件路径 原版: 【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版_代码骑士的博客-CSDN博客【代码】【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版…

SMART PLC运动超驰功能编程应用(含V2.7版本固件下载)

什么是运动控制超驰功能,运动超驰功能如何开启,请参看下面的导图部分: 下面一步步教大家如何更新CPU固件版本。 S7-200 SMART PLC自定义脉冲控制功能块相关详细组态设置,请参看下面的博客。链接如下: S7-200 SMART PLC自定义脉冲轴控功能块AxisControl_FB(梯形图)_RXX…

.NET(C#、VB)APP开发——Smobiler平台控件介绍:MapView MaptrimView

本文简述如何在Smobiler中使用MapView和MaptrimView。 Mapview MapView 地图插件,可用于显示指定地点地图,显示轨迹等。 Step 1. 新建一个SmobilerForm窗体,再拖入MapView和Button,MapView.Size设置(300,300&#xf…

Spring Batch 批处理入门案例解析

引言 书接上篇 Spring Batch 批处理入门案例 ,上篇带小伙伴们写了一个Spring Batch 入门案例,里面有哪些注意要点呢?本篇一起来分析分析~ 案例解析 整个入门案例核心点有5个,一一来讲解一下 EnableBatchProcessing 批处理启动…

AD8226组成的高精度放大电路之一

工业设备中常常需要用到高速、高精度的模拟前端方案,而其中控制系统中的信号电平通常为以下几类之一:单端电流(4 mA 至 20 mA)、单端差分电压(0 V 至 5V、0 V 至10 V、5 V、10 V)或者来自热电偶或称重传感器等传感器的小信号输入。大共模电压摆幅也非常典型,尤其是小信号…

Spring Cloud Zuul过滤器介绍及使用(传递数据、拦截请求和异常处理)

在教程《Zuul网关的介绍及使用》中一开始就介绍过,Zuul 可以实现很多高级的功能,比如限流、认证等。想要实现这些功能,必须要基于 Zuul 给我们提供的核心组件“过滤器”。下面我们一起来了解一下 Zuul 的过滤器。 过滤器类型 Zuul 中的过滤…

问题来了,拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

今天,聊一个有趣的问题:拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗? 可能有的同学会说,网线都被拔掉了,那说明物理层被断开了,那在上层的传输层理应也会断开,所以原…

MarkDown 项目中如何引入开源MarkDown? 史上最简单教程

目录 一、少不了的东西 editor.md ① 下载链接 ② 将其引入到自己的项目中 引入依赖 二、代码部分 一些小细节 1. 编辑页 2. 展示页 一、少不了的东西 如果想要在一个页面中使用MarkDown ,那么你首先就要引入MarkDown editor.md ① 下载链接 GitHub下…