在树莓派上使用分块请求时会收到警告'连接池已满了#39;

时间:2016-10-19 14:46:37

标签: python linux python-requests speech-recognition raspberry-pi3

我正在使用Nuance进行语音识别,我正在使用chunk请求 像这样:

import Audio
import logging
import json
import requests

nuance_creds = 'credentials.json'


def listen():
    source = Audio.Microphone(sample_rate=16000, chunk_size=1024)
    source.open_stream()

    while True:
        try:
            yield source.read()

        except KeyboardInterrupt:
            break


logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)


with open(nuance_creds, 'r') as raw_credentials:  # reads the credentials for nuance api
    credentials = json.loads(raw_credentials.read())

appId = credentials['appId']
appKey = credentials['appKey']
asrUrl = credentials['asrUrl']
asrEndpoint = credentials['asrEndpoint']
requestor_Id = 'fc2jvf7p'

base_url = '%s%s?appId=%s&appKey=%s&id=%s'

base_url = base_url % (asrUrl, asrEndpoint, appId, appKey, requestor_Id)

headers = {
    'Content-Type': 'audio/x-wav;bit=16;codec=pcm;rate=16000',
    'Accept-Language': 'en_US',
    'Transfer-Encoding': 'chunked',
    'Accept': 'text/plain',
    'Accept-Topic': 'Dictation'
}

req = listen()

response = requests.post(url=base_url, data=req, headers=headers, timeout=10,
                         stream=True)

print 'You said: {}'.format(response.text)

在Audio类我使用alsaaudio从麦克风读取缓冲区, 所以read函数返回原始音频。 这个脚本在运行ubuntu的常规台式计算机上运行良好 问题开始时使用覆盆子pi(jessie lite),在帖子的最后我收到一些警告

  

信息:启动新的HTTPS连接(1):dictation.nuancemobility.net

     

警告:连接池已满,丢弃连接:   dictation.nuancemobility.net

     

你说:你好

我尝试使用请求会话来增加池连接的数量,但它似乎什么也没做,即使我给100个连接它没有解决问题,但在台式计算机上似乎甚至一个连接就足够了。 /> 上面的脚本仅用于调试,因此在我的项目中我已经在使用它。但是这个警告仍然没有发生,所以我真的想摆脱它。

扩展请求:

session = requests.Session()
adapter = requests.adapters.HTTPAdapter(
                pool_connections=100, pool_maxsize=100)

session.mount('https://', adapter)

session.post(url=base_url, data=req, headers=headers, timeout=10,
                         stream=True)

0 个答案:

没有答案