设置wit.ai语音API的录制时间

时间:2019-03-31 12:20:05

标签: python-3.x speech-recognition speech-to-text wit.ai

我一直在python 3.7.3中进行语音识别。作为基础,我使用了在线获得的Wit.ai的示例代码。我的问题是,我无法增加记录时间。默认情况下为4秒。当我将其更改为10秒或更长时间时,出现以下错误

回溯(最近通话最近):   文件“ C:/ Users / xyx / Downloads / Desktop / python STT / main.py”,第41行,在     文字= RecognizeSpeech('myspeech.wav',15)   在RecognizeSpeech中的文件“ C:/ Users / xyx / Downloads / Desktop / python STT / main.py”第34行     文字=数据['_text'] KeyError:“ _ text”

感谢任何帮助。谢谢。

我的python代码如下:-

import requests
import json
from Recorder import record_audio, read_audio

# Wit speech API endpoint
API_ENDPOINT = 'https://api.wit.ai/speech'

# Wit.ai api access token
wit_access_token = 'MY WIT.AI KEY'


def RecognizeSpeech(AUDIO_FILENAME, num_seconds = 5):

    # record audio of specified length in specified audio file
    record_audio(num_seconds, AUDIO_FILENAME)

    # reading audio
    audio = read_audio(AUDIO_FILENAME)

    # defining headers for HTTP request
    headers = {'authorization': 'Bearer ' + wit_access_token,
               'Content-Type': 'audio/wav'}

    # making an HTTP post request
    resp = requests.post(API_ENDPOINT, headers = headers,
                         data = audio)

    # converting response content to JSON format
    data = json.loads(resp.content)

    # get text from data
    text = data['_text']

    # return the text
    return text

if __name__ == "__main__":
    text =  RecognizeSpeech('myspeech.wav', 15)
    print("\nYou said: {}".format(text))

1 个答案:

答案 0 :(得分:0)

这是wit.ai API的限制。使用与Google不同的API,它们有一个不错的流版本,可以提供快速响应并可以处理更长的输入。