我想學習音頻編程
回答
「聲音編程」是一個非常廣泛的領域。首先,這絕對是一個可行的主題,但是因爲你需要將東西塞進一個學期,所以你需要限制你的範圍。我可以看到你正在尋找一個開始的地方,所以這裏有一些想法讓你思考。
既然你提到的這兩個「如何在計算機科學的聲音作品」和「合成」,這是值得指出模擬之間的差別聽起來,採樣聲音和合成的聲音,因爲它們是不同的概念。我會在這裏簡要解釋一下。
模擬聲音聽起來像我們人類通常解釋的那樣 - 人耳感受到的空氣振動。您可以將聲音想象爲一維信號,其中自變量是時間,因變量是振動幅度。模擬聲音在時間和幅度域都是連續的。較舊的錄音方法(例如磁帶)使用模擬聲音表示法。模擬聲音不常用於計算機(計算機不適合存儲連續域數據),但理解模擬信號非常重要。如果沿着這條路走下去,預計會看到很多數學(例如複數,傅里葉變換)。
採樣聲音是一種聲音表示,很適合用計算機處理。人們通過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. 完全新編程,想學習ActionScript 3.0
- 4. 從哪裏開始學習音頻或視頻編解碼器?
- 5. 我想學習編程離子移動應用程序
- 6. 我想開始學習Demandware
- 7. 音頻處理 - 我從哪裏開始學習書籍和學習
- 8. 數學,編程和學習
- 9. 資源學習Web音頻API
- 10. 機器學習酒會音頻應用
- 11. 學習java。音頻控制問題
- 12. 學習Uboot編程
- 13. 我想從頭開始學習wordpress。我如何學習?
- 14. 學習編程JavaScript,但我卡住了
- 15. 我需要學習befor編程聊天?
- 16. 學習編程語言
- 17. 學習函數式編程
- 18. 學習Appcelerator鈦編程
- 19. 哪裏學習android編程?
- 20. 套接字編程學習
- 21. 神交學習Python編程
- 22. 如何學習DirectShow編程?
- 23. 學習JavaME編程....困惑
- 24. SQL查詢援助(我想學習)
- 25. 我想學習如何組成圖像
- 26. 我想學習J2ME,從哪裏入手?
- 27. 我想學習iOS遊戲編程。請幫我找到合適的網站
- 28. 我想學習編程一個簡單的遊戲......我從哪裏開始?
- 29. 軟硬度:我是新來的編程領域,我想學習Flex 3的
- 30. 我想從基礎知識中學習DirectShow和MediaFoundation編程。幫助需要學習資源(網站鏈接等)
糟糕,我不知道我必須這樣做。感謝您的領導! – ahota 2011-01-26 06:07:19