我想学习音频编程
回答
“声音编程”是一个非常广泛的领域。首先,这绝对是一个可行的主题,但是因为你需要将东西塞进一个学期,所以你需要限制你的范围。我可以看到你正在寻找一个开始的地方,所以这里有一些想法让你思考。
既然你提到的这两个“如何在计算机科学的声音作品”和“合成”,这是值得指出模拟之间的差别听起来,采样声音和合成的声音,因为它们是不同的概念。我会在这里简要解释一下。
模拟声音听起来像我们人类通常解释的那样 - 人耳感受到的空气振动。您可以将声音想象为一维信号,其中自变量是时间,因变量是振动幅度。模拟声音在时间和幅度域都是连续的。较旧的录音方法(例如磁带)使用模拟声音表示法。模拟声音不常用于计算机(计算机不适合存储连续域数据),但理解模拟信号非常重要。如果沿着这条路走下去,预计会看到很多数学(例如复数,傅里叶变换)。
采样声音是一种声音表示,很适合用计算机处理。人们通过CD和其他音乐录音最熟悉采样声音。模拟信号以某个频率被采样(例如,用于CD记录的44.1KHz)。所以采样的声音信号在时域中是离散的。如果信号是量化的那么它在振幅域中也将是离散的。 MP3等格式是采样格式。如果你感兴趣的话,还有很多东西可以在这个领域学习,比如恢复(去除静态等等)和压缩(再次,编解码器MP3,Ogg Vorbis)。这非常有趣,因为有很多可以进行试验和编码。
模拟和采样声音都深深地挖掘出一个叫做的数字信号处理。谷歌周围,以了解它是什么感觉。它通常作为大学课程教授,所以如果你真的热衷于阅读一些幻灯片,甚至尝试一些较早,较简单的项目。
合成声音是适合于再现音乐曲目的表示,其中播放乐曲的乐器事先已知。把它看作电脑的乐谱。有人必须写乐谱 - 你不能像模拟或采样声音一样记录它。这使得合成声音一个完全不同的表示模拟声音和采样声音此外,计算机需要知道什么是乐器(如钢琴),以便它可以播放(合成)曲目。如果它不知道乐器,它会放弃或选择一个近似匹配(例如用电子琴替换钢琴)。我之前从未与合成器合作过,因此我无法评论他们的学习曲线。
所以,根据我写的内容 - 选择一个更感兴趣的方向,谷歌周围,然后优化你的问题。
编辑
一本好书读的是this。你可以在亚马逊环顾相关书籍并找到更新的东西,但是自从我进行音频处理购物以来,这已经有一段时间了。
如果你有半个小时的空余时间,那么看看这个video tutorial。它涵盖声音,图像和视频处理 - 它们实际上是密切相关的领域。
太棒了。你已经给我很多东西了。我一定会看看那本书! – ahota 2011-01-27 02:43:26
考虑通过书"Who Is Fourier?: A Mathematical Adventure"工作。你可以调整这些例子来做一些小的编程任务来演示基本概念。完成后,您应该能够使用fft在发音元音a,e,i,o,u时制作声音的声谱图 - 识别每个元音的基频和前缀。
我推荐学习Python和模块NumPy, SciPy, and matplotlib(这里有很多,所以超出了基本教程,只是随时学习)。 iPython shell具有“-pylab -p scipy”选项来自动将最常用的工具导入到您的名称空间中。您可以使用PyAudio录制和播放音频。还有Pygame,它扩展SDL(简单DirectMedia层)和pyglet,它使用OpenAL(音频的OpenGL;它具有3D音频和效果)。至于C/C++,还有用于信号处理的IT ++,SPUC和FFTW,以及用于连接硬件和音频文件的SDL/SDL_mixer和OpenAL/ALmixer。
我会推荐这本书:http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=8218 (它的一部分可以在这里找到: http://books.google.com/books?id=nZ-TetwzVcIC&printsec=frontcover&dq=computer+musical+tutorial&hl=pt-BR&ei=D-dKTaKsBMOB8gbF4KDcDg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CDgQ6AEwAA#v=onepage&q=computer%20musical%20tutorial&f=false)
还有一件事你可以看看在PureData的,它是声音编程的开源图形化环境,它的伟大对于初学者。 (http://puredata.info/)
- 1. 我想学习Win32编程
- 2. 从哪里开始学习音频或视频编解码器?
- 3. 我想学习编程离子移动应用程序
- 4. 我想开始学习Demandware
- 5. 音频处理 - 我从哪里开始学习书籍和学习
- 6. 学习java。音频控制问题
- 7. 数学,编程和学习
- 8. 学习Uboot编程
- 9. 我想从头开始学习wordpress。我如何学习?
- 10. 我需要学习befor编程聊天?
- 11. 学习函数式编程
- 12. 哪里学习android编程?
- 13. 如何学习DirectShow编程?
- 14. 学习Appcelerator钛编程
- 15. 套接字编程学习
- 16. 学习编程语言
- 17. 我想学习如何组成图像
- 18. 我想学习J2ME,从哪里入手?
- 19. 软硬度:我是新来的编程领域,我想学习Flex 3的
- 20. 我想从基础知识中学习DirectShow和MediaFoundation编程。帮助需要学习资源(网站链接等)
- 21. 学习C++的视频课程
- 22. 学习C:视频课程推荐
- 23. 什么是学习机器学习的最佳编程语言?
- 24. 学习HTML和学习编程语言有什么区别?
- 25. 初学java想学习Hibernate的
- 26. YouTube上用于学习编程的有用视频
- 27. 学习编程Windows驱动程序
- 28. 学习MIPS汇编
- 29. 从哪里开始学习音频处理?
- 30. 我学习C++服务器编程,但是线程不工作
糟糕,我不知道我必须这样做。感谢您的领导! – ahota 2011-01-26 06:07:19