看板 Python 關於我們 聯絡資訊
如題 我想做一個程式input一個音樂檔 然後直接轉換成音階(Do Re Mi..) 不知道這有沒有人做過 在github也不知道打哪些關鍵字 frequency,note....找到很多沒有想要的 另外,有做這類適合用哪些package 這樣才會有比較好的方向下手 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.206.225 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532967165.A.D5B.html
AndyLee76: 呃這問題沒這麼容易解 07/31 00:38
AndyLee76: 關鍵字是 Pitch and Chord Recognition 07/31 00:41
vi000246: 我只能說非常難 07/31 00:57
Hsins: 學過訊號分析嗎? 07/31 00:58
Hsins: 讀入音檔用 pyaudio, 讀完之後透過 scipy 處理頻率, 你還要 07/31 01:00
Hsins: 考慮取樣的時間間隔, 接著由於頻率有高有低, 你轉成音階要 07/31 01:00
Hsins: 多久轉一次? 怎麼去判斷這個音階(實際上應該說是唱名,會 07/31 01:01
Hsins: 根據不同調性而不同) 07/31 01:01
Hsins: 你在三秒內可能有兩個唱名,都要輸出嗎?如果不是,你還要 07/31 01:02
Hsins: 寫個濾波器,把他整的乾淨一點而不是起起伏伏(怎麼整?單 07/31 01:02
Hsins: 位怎麼拿捏?今天換輸入另外一個音檔,還是一樣的時間長度 07/31 01:03
Hsins: 去濾嗎?) 07/31 01:03
Panthalassa: 真的很難,你可以先把訊號畫出來,看看是不是夠簡單y 07/31 03:01
Panthalassa: 把各個單音分開來,而單音內是不是夠乾淨? 07/31 03:01
看來我找到一個很艱深的問題 剛查了一下 對岸稱這個叫 "扒譜" 不過我想先把問題先化為簡單一點 如果讀取的聲音只有鋼琴聲或是人聲 也就是只有一種音品 讀取的最小間格就16分音符的時間 只是連續音 要怎麼判斷感覺也是很困難 ※ 編輯: phoenixlife (61.222.64.169), 07/31/2018 10:01:14 ※ 編輯: phoenixlife (61.222.64.169), 07/31/2018 10:06:27
pups003: 人聲不是單一音頻,泛音也很麻煩 07/31 11:56
搞錯了 我應該想表達的意思是比較乾淨音檔
kevin85421: 這問題超難有harmonic 07/31 12:21
※ 編輯: phoenixlife (61.222.64.169), 07/31/2018 12:23:11
Angesi: 將頻率數值化並定義DoReMi的區間 將輸入的音頻 以固定時間 07/31 17:38
Angesi: 間間隔做抽樣 可將這些抽樣點做折線圖 連成音波~ 試一下 07/31 17:40