我正在使用pyaudio和pocketsphinx来收听我电脑上的麦克风并翻译我说的话。我想知道的是,是否有可能让程序一直听,并且在听到句子后,通过删除部分创建的临时wav文件进一步处理,如果它低于某个阈?所以举一个例子,你说一个句子,程序等你完成说话,然后一旦检测到长时间休息,它就会停止收听并将wav文件数据放入一个函数中,将单词之间的空格移除75%然后继续将缩短的wav文件传递给pocketsphinx库以进行语音识别。我听说过使用numpy和scipy的其他解决方案,但该循环要求用户使用鼠标手动指定wav频谱图内的修剪段。我想在代码中自动处理这个问题。任何帮助将不胜感激!
答案 0 :(得分:1)
只要没有GUI,numpy和scipy解决方案就不需要用户交互。
>>> from scipy.io.wavfile import read
>>> a = read("adios.wav")
>>> numpy.array(a[1],dtype=float)
array([ 128., 128., 128., ..., 128., 128., 128.])
scipy.signal有许多用于此类操作的内置函数。
此主题已有其他帖子:
Python: write a wav file into numpy float array
How to manipulate wav file data in Python?
What is the easiest way to read wav-files using Python [summary]?