我有一个 Python 脚本,使用 Speech_recognition 包来识别语音并返回所说内容的文本。然而,转录有几秒钟的延迟。是否有另一种方法可以编写此脚本以在说出每个单词时返回它?我有另一个脚本来执行此操作,使用 pysphinx 包,但结果非常不准确。
安装依赖:
pip install SpeechRecognition
pip install pocketsphinx
Run Code Online (Sandbox Code Playgroud)
脚本 1 - 延迟语音到文本:
import speech_recognition as sr
# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Please wait. Calibrating microphone...")
# listen for 5 seconds and create the ambient noise energy level
r.adjust_for_ambient_noise(source, duration=5)
print("Say something!")
audio = r.listen(source)
# recognize speech using Sphinx
try:
print("Sphinx thinks you said '" + r.recognize_sphinx(audio) + "'")
except sr.UnknownValueError:
print("Sphinx could not understand audio") …
Run Code Online (Sandbox Code Playgroud) python speech-recognition speech-to-text cmusphinx pocketsphinx
Django 3.1 的文档说明了异步视图:
主要好处是能够在不使用 Python 线程的情况下为数百个连接提供服务。这允许您使用慢流、长轮询和其他令人兴奋的响应类型。
我相信“慢流”意味着我们可以在不独占每个客户端的线程的情况下实现SSE视图,因此我尝试绘制一个简单的视图,如下所示:
async def stream(request):
async def event_stream():
while True:
yield 'data: The server time is: %s\n\n' % datetime.datetime.now()
await asyncio.sleep(1)
return StreamingHttpResponse(event_stream(), content_type='text/event-stream')
Run Code Online (Sandbox Code Playgroud)
(注意:我改编了此响应中的代码)
不幸的是,当调用此视图时,会引发以下异常:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/asgiref/sync.py", line 330, in thread_handler
raise exc_info[1]
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 38, in inner
response = await get_response(request)
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 231, in _get_response_async
response = await wrapped_callback(request, *callback_args, **callback_kwargs)
File "./chat/views.py", line 144, in watch
return StreamingHttpResponse(event_stream(), content_type='text/event-stream') …
Run Code Online (Sandbox Code Playgroud) 我是 Juan Manuel,我在 Django 1.8.18 (Python 2.7) 中的登录页面有问题。
当我执行用户名/密码表单的“POST”(通过authenticate() 和login() 很好)并且必须重定向(HttpResponseRedirect)到我的索引页面时,浏览器挂起等待响应(它停留在登录页面中)。
POST 后,它想使用 HTTP 302 重定向到“/”并保持原样。
[01/Apr/2020 16:19:43] "POST /login/ HTTP/1.1" 302 0
Run Code Online (Sandbox Code Playgroud)
我注意到一些事情:
1)它不会每次都发生。
2) 在 Chrome 的开发者模式下,“禁用缓存”模式工作正常。
3) 在 Firefox 上工作正常。
4) 使用 reverse() 也是同样的问题(内部调用 HttpResponseRedirect())。
5)开发服务器(Django)和生产服务器(Apache)存在问题。
当它像这样挂起时,如果我按 F5(重新加载),则工作正常并且重定向会转到索引。
网址.py:
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from .views import *
admin.autodiscover()
urlpatterns = patterns('',
url(r'^', include('tadese.urls')),
url(r'^login/$', …
Run Code Online (Sandbox Code Playgroud) auto_now_add
Django 中模型的和timezone.now
(作为默认值)有什么区别?例子:
create_date = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
和
create_date = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)
?
UPD。我说的是我总是不覆盖默认值的情况。
我用 Python 构建了这个 Telegram 机器人,并使用python-telegram-bot
. 它并不那么复杂,但我想做一些回归测试来检查新功能或更改后一切是否正常,更一般地说是测试特定功能以查找错误/边缘情况。
我怎样才能实现这个目标?
目前,我正在手动执行此操作,单击机器人的键盘并输入一些文本。
python unit-testing telegram python-telegram-bot telegram-bot
我有一个 AWS Lambda 函数,它查询 API 并创建一个数据帧,我想将此文件写入 S3 存储桶,我正在使用:
import pandas as pd
import s3fs
df.to_csv('s3.console.aws.amazon.com/s3/buckets/info/test.csv', index=False)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
没有这样的文件或目录:'s3.console.aws.amazon.com/s3/buckets/info/test.csv'
但是该目录存在,因为我正在从那里读取文件。这里有什么问题?
我已经阅读了以前的文件,如下所示:
s3_client = boto3.client('s3')
s3_client.download_file('info', 'secrets.json', '/tmp/secrets.json')
Run Code Online (Sandbox Code Playgroud)
如何将整个数据帧上传到 S3 存储桶?
我收到以下错误:
Access to XMLHttpRequest at 'http://127.0.0.1:8000/' from origin 'http://localhost:62570' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
我尝试添加django-cors-headers中间件,并且CORS_ALLOW_ALL_ORIGINS = True
我也做了ALLOWED_HOSTS = ['*']
但仍然遇到相同的 CORS 错误。我在 NestJS 中遇到了同样的错误,但添加后app.enableCors();
它得到了解决。
这是我的settings.py
文件:
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
DEBUG = True
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'rest_framework',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', …
Run Code Online (Sandbox Code Playgroud) python django cors django-rest-framework django-cors-headers
根据Django文档,可以在when子句中使用多个条件。
When(
registered_on__gt=date(2014, 1, 1),
registered_on__lt=date(2015, 1, 1),
then='account_type'
)
Run Code Online (Sandbox Code Playgroud)
但是,在使用Case子句时,我无法使用相同的内容。
Case(
When(
registered_on__gt=date(2014, 1, 1),
registered_on__lt=date(2015, 1, 1),
then='account_type'
),
default='default'
)
Run Code Online (Sandbox Code Playgroud)
我最终收到以下错误:
TypeError: __init__() got multiple values for keyword argument 'then'
有什么办法可以做到这一点?我在这里想念什么吗?
在 Python 中记录异常的最正确方法是什么?
有些人只记录e
另一个日志属性e.message
(但在某些例外情况下可能会丢失)。
一种用于str()
捕获异常的描述,但它不包含错误类型,如果没有错误类型,有时就没用。
实际上repr()
会返回错误类型和描述,但它并不那么流行(在我看到的项目中)。
还有一个相关问题:这如何影响像 Sentry 这样收集和分组错误/警报的服务。它们还应该包含一些有关具体错误的信息。
因此想再次开启这个讨论:哪种记录异常的方式最好使用?
def foo():
""" Method that can raise various types of exceptions """
1/0 # just for example
try:
foo()
except Exception as e:
logger.exception('Error occurred during execution: %s', e) # 1
logger.exception('Error occurred during execution: %s', e.message) # 2
logger.exception('Error occurred during execution: %s', str(e)) # 3
logger.exception('Error occurred during execution: %s', str(e.message)) # 4
logger.exception('Error occurred during execution: %s', repr(e)) # …
Run Code Online (Sandbox Code Playgroud) 是否允许将自定义 Django 命令分组到同一 Django 应用程序内的单独文件夹?
我有很多这样的东西,想按目的对它们进行逻辑分组。创建了文件夹,但 Django 找不到它们。
也许我试图让他们走错路。尝试过:
python manage.py process_A_related_data
__init__.py
python manage.py folderA process_A_related_data
python manage.py folderA.process_A_related_data
python manage.py folderA/process_A_related_data
出现以下错误:
Unknown command: 'folderA/process_A_related_data'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud) python ×10
django ×6
amazon-s3 ×1
aws-lambda ×1
cmusphinx ×1
cors ×1
django-orm ×1
pandas ×1
pocketsphinx ×1
redirect ×1
telegram ×1
telegram-bot ×1
unit-testing ×1