作者 主题: 初学者关于使用 minim库的 问题  (阅读 5765 次)

XErrrr

  • Newbie
  • *
  • 帖子: 3
初学者关于使用 minim库的 问题
« 于: 三月 22, 2013, 10:55:11 上午 »
我想要从麦克风录入一段 音频 ,然后基于储存信号的数组处理这段音频,再把数组转化成声音在特定的时候播放。

请问把数组变成音频信号 应该用minim的哪些类啊?

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: 初学者关于使用 minim库的 问题
« 回复 #1 于: 三月 22, 2013, 08:53:56 下午 »
在 Minim 中想凭空创造声音可以通过 AudioOutput 类
http://code.compartmental.net/minim-beta/javadoc/ddf/minim/AudioOutput.html

自带范例中有个 SynthesizeSound 可以一看

但是你会失望,因为 Minim 中的声音合成是基于Midi、振荡器和噪音的
我也不清楚怎么把数组转化为音频信号

但是 Minim 提供了 AudioEffect 类
http://code.compartmental.net/tools/minim/manual-audioeffect/
可以用于在播放音频时实时地修改数组

我只能帮你到这里了


XErrrr

  • Newbie
  • *
  • 帖子: 3
Re: 初学者关于使用 minim库的 问题
« 回复 #2 于: 三月 22, 2013, 09:12:08 下午 »
谢谢~

那些类我看了好久但是好像没有我想要的。
我是想改变声音的音色,但是我只会基于 音频的数组自己写函数处理,倒是用不到它的声音处理的函数。
但是 如果不能把数组变成声音输出 ,那我可以就得换一个思路了

再次感谢~等了好久终于有人回复我了


vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: 初学者关于使用 minim库的 问题
« 回复 #3 于: 三月 22, 2013, 09:41:46 下午 »
描述下你的思路
你的算法的输入是什么
输出的又是什么
怎么改变音色

说不定 AudioEffect  可以实现你的需求

XErrrr

  • Newbie
  • *
  • 帖子: 3
Re: 初学者关于使用 minim库的 问题
« 回复 #4 于: 三月 22, 2013, 09:53:10 下午 »
我的算法的输入和输出都是  音频信号的数组。


其实想实现的功能就是跟会说话的汤姆猫差不多。

先对信号做FFT变换,然后根据fft结果把它的频域数据进行一定的改变,就可以改变音色。

而且我现在也不知道怎么把从麦克风输入的音频延时播放出来啊。。

因为processing都是实时性的,但是我的思路总是先存下来再处理后再播放,就遇到很大问题。

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: 初学者关于使用 minim库的 问题
« 回复 #5 于: 三月 23, 2013, 03:18:01 下午 »
AudioEffect  应该能实现你的需求,FFT也是Minim自带的功能

kennyma1991

  • Newbie
  • *
  • 帖子: 9
Re: 初学者关于使用 minim库的 问题
« 回复 #6 于: 七月 22, 2013, 04:37:02 上午 »
你的想法和思路,跟ableton的clip有些相似。

做延时的话,可以选择的思路其实跟ableton也是一样的。

你有两种可以选择的方案:

第一种:

湿听干录

第一步,将你麦克风的行为加上一个起始和结束的命令。将其迅速输出成一个wav格式的音频。录音的过程通过声卡直接输出处理过的音频。但是录制的过程中,录制原音。

第二步,制作一个触发器,可以是一个屏幕上的按钮也可以是一个键盘上的按键,将你录制好的clip进行播放。在播放的过程中,同时再次进行音频处理。


利弊:这种湿湿的录法可能处理音频的次数比较多,每次对音频都要进行处理,需要的系统资源相应的也比较多。但是优点是灵活,可以随时调整参数来改变声音的特性


第二种:

湿听湿录

跟第一种相似,可以直接湿湿地录进去,区别就是第二次播放就不需要再次处理音频了。

利弊:简单粗暴。缺点就是比较死板,不方便后期再加工制作。



当然你也可以参考干听湿录啊= = 之类的东西。但实际操作中,即时音频处理对声卡会有一定的要求。如果对监听没有要求的话可以不监听干、湿之类的= = 取决于你个人的硬件条件和要求了。

Tags: