首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用webrtcvad时出错

尝试使用webrtcvad时出错
EN

Stack Overflow用户
提问于 2016-07-04 09:32:24
回答 1查看 3.5K关注 0票数 4

我正在尝试使用webrtcvad 2.0.8进行语音活动检测。这个https://pypi.python.org/pypi/webrtcvad提供了基本的过程。当我试图按如下方式实现它时,我会得到一个错误。我的代码:

代码语言:javascript
复制
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)

我得到的错误是:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 15:09:17

webrtcvad期望缓冲区是一个带有数据字节的字符串,而不是一个浮动数组。你可以做这样的事

代码语言:javascript
复制
fr = np.int16(Z[100] * 32768).tobytes()
vad.is_speech(fr, fs)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38181309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档