首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Speech_Recognition坏结果

Python Speech_Recognition坏结果
EN

Stack Overflow用户
提问于 2015-11-04 15:36:11
回答 1查看 358关注 0票数 0

我试图使用Python3.4使用speech_recognition 3.1.2,但我一直遇到麻烦。

最初,当我尝试使用示例WAV识别器时,我得到了TypeError:'str‘不支持缓冲区接口,所以我对源代码进行了梳理并做了以下更改:

代码语言:javascript
复制
    def read(self, size = -1):
        buffer = self.wav_reader.readframes(self.wav_reader.getnframes() if size == -1 else size)
        if type(buffer) is str:
            buffer = buffer.encode(encoding="utf-8", errors="strict")
            print(buffer)
        if self.wav_reader.getnchannels() != 1: # stereo audio
            try:
                buffer = audioop.tomono(buffer, self.wav_reader.getsampwidth(), 1, 1) # convert stereo audio data to mono
            except Exception as e:
                print(e)
        return buffer

发自:

代码语言:javascript
复制
    def read(self, size = -1):
        buffer = self.wav_reader.readframes(self.wav_reader.getnframes() if size == -1 else size)
        if self.wav_reader.getnchannels() != 1: # stereo audio
            buffer = audioop.tomono(buffer, self.wav_reader.getsampwidth(), 1, 1) # convert stereo audio data to mono
        return buffer

虽然它没有抛出一个错误,现在的转录质量是可怕的。我可以非常准确地运行python -m speech_recognition,所以我不确定发生了什么。我把energy_threshold调高到4000,以确保它不是环境噪音问题。我甚至使用了两种不同的识别服务(IBM和Google语音识别)。另外,出于某种原因,最后两个缓冲区是空字符串,然后我必须将其转换为字节对象。

代码语言:javascript
复制
b''
b''

任何建议都会很棒!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 02:11:44

我已经推出了3.1.3版本,这应该可以解决这个问题。用pip install --upgrade SpeechRecognition升级并试用修复程序!

实际上,这里有两个因素:

  • Python chunk库中有一个bug,如果文件指针位于或超过文件末尾,它将返回一个字符串而不是一个空字节对象。这是几个月前修复的,但是今天使用的大多数Python版本仍然存在这个错误。
  • 立体声音频没有被正确地转换成单声道-通道仍然被设置为立体声。这导致了一些有趣的声音!

请参阅此处的更改:recognition

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33525835

复制
相关文章

相似问题

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