小编wow*_*in2的帖子

实时语音识别

我有一个 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

13
推荐指数
1
解决办法
6017
查看次数

Django 3.1:带有异步生成器的 StreamingHttpResponse

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)

python django server-sent-events

13
推荐指数
2
解决办法
2203
查看次数

当我执行 HttpResponseRedirect (302) 时,Django 登录 POST 挂起

我是 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)

python authentication django redirect http-status-code-302

12
推荐指数
1
解决办法
899
查看次数

auto_now_add 和 timezone.now 默认值之间的差异

auto_now_addDjango 中模型的和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 django django-models django-database

10
推荐指数
2
解决办法
3117
查看次数

如何为 Python Telegram 机器人创建单元测试

我用 Python 构建了这个 Telegram 机器人,并使用python-telegram-bot. 它并不那么复杂,但我想做一些回归测试来检查新功能或更改后一切是否正常,更一般地说是测试特定功能以查找错误/边缘情况。

我怎样才能实现这个目标?
目前,我正在手动执行此操作,单击机器人的键盘并输入一些文本。

python unit-testing telegram python-telegram-bot telegram-bot

9
推荐指数
1
解决办法
5267
查看次数

将 Pandas 数据帧写入 S3 存储桶 (AWS)

我有一个 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 存储桶?

python amazon-s3 amazon-web-services pandas aws-lambda

7
推荐指数
2
解决办法
1万
查看次数

Django CORS问题:不允许access-control-allow-origin

我收到以下错误:

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

7
推荐指数
1
解决办法
5773
查看次数

在Django的Case When表达式中使用多个条件

根据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 django django-orm

6
推荐指数
1
解决办法
2190
查看次数

在 python 中记录异常消息的正确方法

在 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)

python python-logging

6
推荐指数
1
解决办法
5252
查看次数

将 Django 命令分组到同一应用程序内的文件夹中

是否允许将自定义 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 django django-command-extensions django-commands

6
推荐指数
2
解决办法
2098
查看次数