一直想完成我心中很想做的一个东西,不过好难啊,只好拆接下来,一步一步来咯。
第一步,就是用python识别语音的音调。
praat
先说个不用python的方法。最初是偶然找到了praat这个软件,很简单,打开praat-点open-read from file - view & edit - pitch - show pitch 就可以啦(注意要短于10秒,如果超过的话zoom in才能看到线条)。
python
再说用python 的2个方法。
amfm_decompy
首先安装amfm_decompy
1 | python3 -m pip install amfm_decompy |
使用
1 | import amfm_decompy.basic_tools as basic |
要去掉0的话:
1 | p_nan = pitch.samp_values |
praat
用刚刚的praat软件 view & edit 后,点击 pitch - pitch listing,生成一个txt文件
使用
1
2
3
4
5
6
7import numpy as np
import matplotlib.pyplot as plt
praat = np.genfromtxt("info.txt")
praat = praat[:,1]
plt.plot(praat)
plt.show()
结果:
对比
两者对比一下,可以看到结果基本差不多。
Reference
关于进一步增进matplotlib:https://zhuanlan.zhihu.com/p/109245779