OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6356|回复: 10

懂音频的大神进

[复制链接]

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2016-3-25
在线时间
14 小时
发表于 2016-4-3 15:38:43 | 显示全部楼层 |阅读模式
18金钱
    本人有一个创意,是关于麦克风实时扩放环境中防止啸叫的方法。
    说创意内容之前,先讲一段本人关于这个创意产生的前因后果。
      2015年底的时候,本人在网上购买了两只FM无线话筒,带混响和音频输入接口的,这样,就可以把无线话筒插在手机上唱K,利用带收音机功能的音响接收无线话筒信号,模拟卡拉OK厅的环境,效果还是不错的。在玩无线话筒的过程中,我对怎样防止麦克风啸叫的原理产生了兴趣。网上搜了一些资料,总结认为啸叫产生的原因是当话筒和喇叭正对时,某一频率的相对较大的底噪信号(音频范围)在话筒收音和喇叭放音的循环回路中形成共振持续放大,从而形成了让人厌烦的单频啸叫音。啸叫音的频率基本上与使用环境的一些因素有关,例如麦的频响,放大电路频响,喇叭频响以及话筒与喇叭的距离和相对角度等。也因此,多频点陷波器大抵就是针对实际的现场环境把几个常见啸叫频率切除掉来防止啸叫产生的。
    另外,市面上其他防止啸叫的技术手段大概有如下几类,除上述的陷波方法,其他有移频法,利用把话筒接收到的信号在整体上上移或下降几个hz的频率,使喇叭放出音和话筒接收音因频差始终存在而无法共振放大,从而防止啸叫。移频法的优点是防啸作用明显,缺点是不能使人声原音重放,即有变调之嫌。
    再有一种技术方法是双麦法,AB去除底噪的大致原理,但想来如果主麦A对准了喇叭,啸叫还是无可避免的。另有一种技术方法和双麦法相似,即将喇叭信号在电路内部直接返回一部分到电路前端,如果麦信号和这返回的信号有相似性,说明话筒可能对上了喇叭。处理上,简单来说也是用话筒接收信号减去这部分返回的信号,理论上就可以消除啸叫。但这其间不确定的因素是话筒和喇叭的距离,声速和光速的差大家都清楚,麦是移动的,因此,上述的两信号作减运算时在时域上不可能完全匹配,也因此,此方法可能反而对音质造成了严重的损伤。
    其他的防止啸叫的主要方法则是操作上的避免法,如提高话筒指向性来减小话筒和喇叭正对的机会,又如通过降低灵敏度和放大系数来防止啸叫。指向型话筒只能减小啸叫机率,并不能阻止啸叫;降指标方法同样,话筒和喇叭太近时依然会啸叫,并且降指标的方法会使讲麦的人有大声吼的嫌疑。
    讲了上面一些不全面的防止啸叫的方法及原理后,就要开始谈到我的想法了。凡事找源头,破坏了源头,由其造成的一切结果自然灰飞烟灭。那么在啸叫这档事里,源头就是共振,正反馈放大。如果我们能够通过技术手段把共振消灭在萌芽,并且基本不影响话筒的原音重放,那才是真正的成功。上述中的移频法破坏共振是OK的,无奈做不到原音重放。多频点陷波则对音质也有一定损伤。那怎样才能安全而又无损地做到原音重放呢,我的想法就是:预判加处理。
所谓预判,就是随时对正常扩放的话筒扬声器电路进行监控,当判断为有啸叫可能产生时则进行下一步动作。判断的原理,可基于频谱分析以及声强分析。这下一步动作就是指处理,所谓处理,则指以最高的原音重放的指标来进行防止啸叫的完美处置。这里的防啸原理,我提出了两个方法,其一是切波法,另一是延时法。
为了例证切波以及延时二方法可以防止啸叫的可行性,我又从网上买了两块混响功放板,其一为整件,另一为散包。混响ICPT2399,其特点是有一个ADDA的过程,过程中通过一个外部电阻来调节延时时间。为了做实验,我先得将混响板改为延时板,然后又通过一只S7-200PLC来产生无规则脉冲波,再加反并的两只光耦,试验各种无规则脉冲波的周期、脉宽,以及试验电路板上各点的短路、对地及变阻。无奈各种举措,要么啸叫无法消除,要么干扰太大,总之似乎没有成功的希望。
    到这个时候,通过模拟电路进行可行性验证基本宣告失败。接下来,也只有通过数字电路进行实验了。“单片机”三个字,第一次出现在了我的视线中。
单片机,一个很科技的名词,我认识它,却一点儿也不了解它。什么这个语言那个语言的,英文单词我也不认识几个,更别说这和天书一样的什么鬼语言了。怎样办,上网找人帮!可稍稍接触了下这行,发现这单片机人才可真是了不得,出场费那和名星有得一比。你和他谈合作,他更是压根不正眼瞧你。噫,克强先生还在号召万众创业呢,我好不容易揣了点梦想,不带你单片机大神这样打击我吧。
这其间,我和我买的无线麦的制造商老板搭上,因为我很欣赏他的产品,我觉得他也是一个很有想法的人,并且他也算是成功了。可接触下,发现他的新产品里已经在宣传DSP防啸叫了,他主要做的汽车无线K歌麦这一块,所以把防啸做在了无线麦里。没了解到他的防啸原理,但想来大抵也是移频这一招吧。后来他更是直接问我“你的成本、你的成本!”,妈呀,我对单片机一窍不通,我能算出什么成本来。
再渐渐的了解单片机的过程中,我感觉STM32系列挺合适作音频数字化处理的。单片价格不高,并且自带ADC和DAC,理论上是不需要其他单独的ADC或DAC模块配合的。但了解中,发现应用STM32自带的ADC作音频处理的人和电路寥寥无几,并且,做过的人中普遍反映效果不佳,还原后喇叭里带杂音。后来我仔细想了,理论上STM32自行处理音频应该是没问题的,主要是愿意接触这一块的人少,外路电路上则做不到很完善,所以会存在一些诸如模电电路底噪高,采样率偏小、DAC没做滤波圆化等。因此,目前单片机处理音频基本上还是带上了辅助模块,例如较常用的VS1003系列。
说了以上这些,感觉废话多了点,言归正传。我想法中的预判加处理概念如果能很好的进行防啸叫,利用STM32加以开发,应该可以做到一种低成本的防啸叫专用设备,它既可以单独推出到市场上使用在目前常见的无线话筒接收器和功放之间,也可以内置于相关产品中,其成本,以目前STM32较小开发板只在20元左右算的话,单独产品的硬件成本也只在30元以内(含电源),卖出价在100元以上应该不成问题。那么问题来了:
这个创想的理论基础是可靠的吗,这个世界有梦想的人还很多吗?

热诚盼望有激情的单片机才俊看中这一创想,共同谱写心中的梦想!
言之草草,大家或可一笑而过。具体创想的细节,后续陆续发上来。

最佳答案

查看完整内容[请看2#楼]

看你自己是要怎么做,现在模拟上面的啸叫抑制已经能做了。方法还很多,成本很低。 提供一种方法:采样256窗FFT,根据功率谱来抑制和延拓的周期中抑制,在IFFT恢复声音,有一定效果,在用来讲话上面还是可以的,唱歌会损失音质。不行。 数字的方法实现主要问题不光是处理问题,还有速率问题,包括采样速率和恢复速率。采样的长度和频率决定恢复的程度。高速率的恢复不光程序难做,器件可能也难买到。 自己实现关键也是要有标准的 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2014-11-13
在线时间
20 小时
发表于 2016-4-3 15:38:44 | 显示全部楼层
看你自己是要怎么做,现在模拟上面的啸叫抑制已经能做了。方法还很多,成本很低。
提供一种方法:采样256窗FFT,根据功率谱来抑制和延拓的周期中抑制,在IFFT恢复声音,有一定效果,在用来讲话上面还是可以的,唱歌会损失音质。不行。
数字的方法实现主要问题不光是处理问题,还有速率问题,包括采样速率和恢复速率。采样的长度和频率决定恢复的程度。高速率的恢复不光程序难做,器件可能也难买到。
自己实现关键也是要有标准的时钟和缓冲,比较基准的时钟STM32应该不行。
总体来说,我用了这么久的32,感觉有点像通用微控制器,跑跑系统,跑跑界面,问题都不大。上升到专业的处理上面,还是选择TI、ADI的东西比较好。
Delta-sigma数据转换器
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2016-4-3 16:36:33 | 显示全部楼层
我居然看完了。。。其实楼主你的想法是想利用数字处理来解决啸叫问题,然后想到单片机,最后想到STM32。。。不过你也得看用哪个STM32啊,数字信号处理其实就是DSP,不是所有STM32都能处理得来的,毕竟DSP涉及到一大堆滤波算法,DSP没学好的飘过~~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-4-3 17:47:06 | 显示全部楼层
stm32内部adc和dac只有12位,楼主想要商用的话,必须外加AD/DA了。最少16位起,然后24位才好拿出手。原理方面,楼主倒是可以在stm32上验证(利用自带的DAC/ADC)
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2016-3-25
在线时间
14 小时
 楼主| 发表于 2016-4-3 20:53:18 | 显示全部楼层
原子大侠发话了,却也是没有表现出对这个创意的认同。这个技术如果可行的话,难道没有市场价值吗?为什么没有单片机大神肯合作验证开发呢?我在21IC发包请人做单片机样机,只要简单的始终切波那种,还没涉及到防啸触发一块,可谈的人动辄开口要价万儿八千,没一个肯合作开发的。嗯,概念实用化之路确实难走!
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2016-3-25
在线时间
14 小时
 楼主| 发表于 2016-4-3 21:03:47 | 显示全部楼层
有兴趣的移步 http://project.21ic.com/p/97388 ,看看项目内容,因为不确定理论的可行性,我不可能出太多钱去验证它。希望是有志同道合的单片机高手来合作。因为我已先行申请了专利权,愿意用单片机验证的,大家可以先签协议,成功后分享专利权的收益。
本论坛中,有一个伊轩海大神曾做过ADC音频采集,看他也算是一个喜欢动手的人,希望伊大神能看到这个贴
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2016-3-25
在线时间
14 小时
 楼主| 发表于 2016-4-3 21:31:32 | 显示全部楼层
回复2楼,你真有耐心,你居然看完了。。。其实,我也大概的了解了一下STM32系列,用它中间的任意一款应付我说到的防啸处理及触发分析都是小菜一碟,因为在这个应用中CPU可以全部用来对付音频,除了原子兄谈到的位数问题,,,话说在普通娱乐唱K应用中12位的精度应该也够了吧,把采样率提高些,然后加个什么AGC概念,总比另加配置大幅提高成本要好。
原子侠是个完美主义者,从他的字里行间以及D8的用料中大致可以得出这样的结论。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-4-3 22:17:25 | 显示全部楼层
younglong 发表于 2016-4-3 21:31
回复2楼,你真有耐心,你居然看完了。。。其实,我也大概的了解了一下STM32系列,用它中间的任意一款应付我 ...

12位是确实不够的。你大可以试了以后,再来看我这句话。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

266

帖子

0

精华

高级会员

Rank: 4

积分
671
金钱
671
注册时间
2014-7-6
在线时间
105 小时
发表于 2016-4-3 22:24:31 | 显示全部楼层
楼主,精神可嘉,现在国际大厂,雅马哈,舒尔,好像也都是移频防止啸叫,另外人家的处理器可都是DSP,你用STM32能完成,那可是很厉害了
回复

使用道具 举报

21

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2014-11-13
在线时间
20 小时
发表于 2016-4-8 05:54:01 | 显示全部楼层
感觉单片机基本上是条不归路。
Delta-sigma数据转换器
回复

使用道具 举报

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2015-3-28
在线时间
13 小时
发表于 2017-2-20 15:32:56 | 显示全部楼层
你好,请问你还在做这个项目吗?我这边已经实现DSP+AIC23+FFT 基本上你硬件需要的东西都能实现,我就是理论这块差了点,你能帮我提供理论思路我们一起来弄吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表