python - 尝试使用 webrtcvad 时出错

标签 python voice-recognition

我正在尝试使用 webrtcvad 2.0.8 进行语音事件检测。这https://pypi.python.org/pypi/webrtcvad提供基本程序。当我尝试按如下方式实现它时,出现错误。 我的代码:

import webrtcvad
from scipy.io import wavfile
import scipy
source1 = path + "phone1.wav"
fs, audio = wavfile.read(source1)
audio_n = audio/float(2**15)

vad = webrtcvad.Vad(3)
def audioSlice(x, fs, framesz, hop):
    framesamp = int(framesz*fs)
    hopsamp = int(hop*fs)
    X = scipy.array([x[i:i+framesamp] for i in range(0, len(x)-framesamp, hopsamp)])
    return X
framesz=10./1000 #10 ms 
hop = 1.0*framesz
Z = audioSlice(audio_n, fs, framesz, hop)
vad.is_speech(Z[100], fs)

我得到的错误是:

is_speech(self, buf, sample_rate, length)
     25                 'buffer has %s frames, but length argument was %s' % (
     26                     int(len(buf) / 2.0), length))
---> 27         return _webrtcvad.process(self._vad, sample_rate, buf, length)
     28 
     29 

Error: Error while processing frame

最佳答案

webrtcvad 期望缓冲区是一个带有数据字节的字符串,而不是一个 float 数组。你可以做类似的事情

fr = np.int16(Z[100] * 32768).tobytes()
vad.is_speech(fr, fs)

关于python - 尝试使用 webrtcvad 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181309/

相关文章:

python - 使用 Python 进行 B 样条插值

python - 学校项目的网络抓取

python - 方法和属性

azure - 如何在Azure中进行语音识别并立即完成

algorithm - 如何使用python查找两个语音文件的差异

python - Django查找文件路径问题

python:从未知的字符编码(假设iso-8859-1)转换为unicode

google-chrome - 是否可以以编程方式使用 Chrome Live Caption?

javascript - 谷歌语音识别技术有API吗?

android - 通过语音识别从第三方 Activity 返回我的 MainActivity