2017年5月30日 星期二

python 變聲器 (調整pitch) - St.1


要做出變聲器以前,
預計一步一步實現的流程是這樣,
1. 能夠讀取音擋的頻譜 (最好能畫圖, 以做直觀上面的分析)
2. 將已有的聲紋, 套用其他頻譜
終極目標是利用google 小姐的音檔自動產生不同人聲的效果

打算利用 pyaudio與matplotlib實現第一步驟
(PS 因為2.7的pyaudio好像有少插件, 所以以下採用3.5開發)

第一個會遇到的問題是
pyaudio似乎只能對wav檔產生反應
如果是mp3格式的話,
可以安裝pydub

對mp3做以下轉換
from pydub import AudioSegment
sound = AudioSegment.from_mp3("XXX.mp3")
sound.export("XXX.wav", format="wav")

----------------------------------------------------------------

結果發現做fourier transform 根本不用pyaudio
只需要wave就可以了與numpy中的fft轉換就可以了

----------------------------------------------------------------

https://github.com/NCNU-OpenSource/Voice-Changing
從NCNU, 楊佳儒, 郭亞蓁, 余美儒三位的作品裡面目前可以看到
可以針對pitch做更改 (整個shift一個音調)
直接使用他們的code確實可以實現變聲器的功用

http://mirlab.org/jang/books/audioSignalProcessing/audioBasicFeature.asp?title=3-2%20Basic%20Acoustic%20Features%20(%B0%F2%A5%BB%C1n%BE%C7%AFS%BCx)&language=all

基本聲學有三大特徵
如果不理會音量的話,
音色是我後續想要調整的效果

如果有人對這部分有研究 或是有想法的話, 歡迎與我聯繫, 指教



XGBoost (python3.5) (windows) (anaconda) plot_tree 修正

windows anaconda下載的XGBoost plot_tree default function畫出來只會顯示 f0, f1, f2......作為feature的切割 如上圖 參考了網路上的做法, 做了修正 1. 首先要建立一個fmap的文件 ...