我正在使用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)