Python程序设计基础,第三方库Djangorequestshashlibpyttsx3等的使用百度API语音识别业务接口文本朗读业务接口翻译业务接口的传入。

 

01、任务实现步骤

任务描述:本任务利用Django框架搭建智能语音识别翻译平台后端,包括识别翻译、朗读百度API接口调用以及平台所有逻辑

一步视图views.py编写。中英文翻译接口需传入参如图1所示

■图1  百度api翻译接口需传入参数

英文翻译接口核心代码如下所示。

#编写英文翻译接口功能函数
def translate(text):
    appid = '20220826001320772'
    secretKey = 'C0jtrN2cmdIzVqIA_nsD'  # 填写你的密钥
    #按照pid文档编写(接入接口)
    httpClient = None
    myurl = '/api/trans/vip/translate'
    #翻译样式
    fromLang = 'auto'  #选择自动识别语言
    toLang = 'zh'      #翻译成中文
    salt = random.randint(32768, 65536)
    q = text
    sign = appid + q + str(salt) + secretKey
    sign = hashlib.md5(sign.encode()).hexdigest()
    myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
    salt) + '&sign=' + sign
    #使用try语句处理异常
    try:
        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)

        # response是HTTPResponse对象
        response = httpClient.getresponse()
        result_all = response.read().decode("utf-8")
        result = json.loads(result_all)
        print(result)
        res = result['trans_result'][0]['dst']
        return ress
    except Exception as e:
        print (e)
    finally:
        if httpClient:
            httpClient.close()

 第二步:编写路由urls.py。在URL请求处理请求views.py函数之间建立一个对应关系url核心代码如下所示。


urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^voice/(?P<path>.*)',serve,{"document_root":MEDIA_ROOT}),
    re_path(r'^base/', include( 'base.urls', namespace="base") ),
    re_path(r'^onto/', include('ontology.urls', namespace="ontology")),
    re_path(r'^corpus/', include( 'corpus.urls', namespace="corpus") ),
    re_path(r'^event/', include('event.urls', namespace="event")),
    re_path(r'^txtproc/', include( 'txtproc.urls', namespace="txtproc") ),
    re_path(r'^lexicon/', include('lexicon.urls', namespace="lexicon")),
    re_path(r'^phrase/', include('phrase.urls', namespace="phrase")),
    re_path(r'^path/', include('path.urls', namespace="path")),
    re_path(r'^nlpapi/', include('nlpapi.urls', namespace="nlpapi")),
    re_path(r'^uapi/', include('utils.urls', namespace="uapi")),

 第三步:settings.py的编写。settings.py用于配置管理Django项目的管理运维信息settings.py核心代码如下所示。

#调试模式创建工程初始值为True
DEBUG=True
#ALLOWED_HOSTS用来设置允许哪些主机访问我们django后台站点
ALLOWED_HOSTS = ['*']

# 核心代码放在appssys.path.insert(0,os.path.join(BASE_DIR,'apps'))
INSTALLED_APPS = [
    'django.contrib.admin',             #内置后台管理系统
    'django.contrib.auth',              #内置用户认证系统
    'django.contrib.contenttypes',      #记录项目所有model数据
    'django.contrib.sessions',          #用于标识当前访问网站用户身份记录相关用户信息
    'django.contrib.messages',          #massage提示功能
    'django.contrib.staticfiles',       #查找静态资源路径
    'voice2voice'
]

#中间件MIDDLEWARE配置
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
#指定urls.py(路由)的路径调用v2vservice中的类模块
ROOT_URLCONF = 'aitrans.urls'
#模板信息配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',  #定义模板引擎用于识别模板里面变量指令
        'DIRS': [os.path.join(BASE_DIR,'templates')],            #指向模板存放路径templates文件夹,方便调用index.htm以及更高配置的base.htm
        'APP_DIRS': True,        #是否在App查找模板文件
        #用于填充在RequestContext上下文
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.media',
            ],
            'builtins':['django.templatetags.static'], #import static tag
        },
    },
]

WSGI_APPLICATION = 'aitrans.wsgi.application'

# Database——系统默认分配数据库部分
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path

 第四步:wsgi.py的编写。wsgi为Web服务器网关接口,实际上就是一种协议,它遵守 WSGI 协议负责网络通讯部分实现wsgi.py的代码如下所示。


import os      #导入osfrom django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'aitrans.settings')
application = get_wsgi_application()

 第五步:启动程序manage.py的编写,manage.py如下所示。

import sys
import os
#定义main()函数
def main():
    #调用settings.py
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'aitrans.settings')    
    #处理异常捕获
    try:                     
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)
#启动主程序
if __name__ == '__main__':
    main()

原文地址:https://blog.csdn.net/qq_41640218/article/details/134820024

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47544.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注