【发布时间】:2014-01-24 15:55:09
【问题描述】:
我想制作一个 Android 应用,它可以监听麦克风,并向扬声器播放完全相同的声音,但只改变了频率。 假设我想播放的频率总是比输入频率高一倍。 我尝试使用调谐器,并使用该频率使用 AudioTrack 类播放新音符,但听起来不像输入。 (我猜是因为泛音消失了。)
所以我已经知道输入的频率,但我想改变频率而不只是弹奏一个新音符,因为它听起来会很不一样。
有人知道怎么做吗? 提前致谢, 杰罗恩 D.
【问题讨论】:
我想制作一个 Android 应用,它可以监听麦克风,并向扬声器播放完全相同的声音,但只改变了频率。 假设我想播放的频率总是比输入频率高一倍。 我尝试使用调谐器,并使用该频率使用 AudioTrack 类播放新音符,但听起来不像输入。 (我猜是因为泛音消失了。)
所以我已经知道输入的频率,但我想改变频率而不只是弹奏一个新音符,因为它听起来会很不一样。
有人知道怎么做吗? 提前致谢, 杰罗恩 D.
【问题讨论】:
这似乎是一个信号处理问题,而不是编程问题。
您是对的,所有自然声音(如人声)都有很宽的频率范围。因此,您不能通过单个频率来近似麦克风输入并简单地更改该频率。相反,您需要一种“调制”技术:使用低通滤波器过滤输入,将其乘以另一个正弦波,移除图像,并将最终结果提供给 AudioTrack。基础知识请参考教科书《信号与系统》。
【讨论】: