Python智能语音识别语翻译平台|项目后端搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Python程序设计基础,第三方库Django、requests、hashlib、pyttsx3等的使用,百度API语音识别业务接口、文本朗读业务接口、翻译业务接口的传入。

640.jpg

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

01、任务实现步骤

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

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

640.png


■图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 = ['*']

# 核心代码放在apps上
sys.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      #导入os库
from 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()
目录
相关文章
|
2天前
|
缓存 前端开发 测试技术
(译)Python 官方团队在打包项目中踩过的坑
(译)Python 官方团队在打包项目中踩过的坑
18 2
|
2天前
|
Unix 程序员 Apache
从 Python 之父的对话聊起,关于知识产权、知识共享与文章翻译
从 Python 之父的对话聊起,关于知识产权、知识共享与文章翻译
13 0
|
10天前
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
2月前
|
机器学习/深度学习 存储 网络架构
Python 智能项目:6~10(5)
Python 智能项目:6~10(5)
38 0
|
2天前
|
Python
Python 3.10 版本采纳了首个 PEP,中文翻译即将推出
Python 3.10 版本采纳了首个 PEP,中文翻译即将推出
12 3
|
2月前
|
存储 Python
Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序
Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序
22 0
|
2月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
40 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
2月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
48 7
|
2天前
|
Web App开发 人工智能 Kubernetes
Python 潮流周刊#23:35 个容易上手的 Python 小项目
Python 潮流周刊#23:35 个容易上手的 Python 小项目
9 1
|
2天前
|
人工智能 自然语言处理 前端开发
Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资
Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资
14 1

相关产品

  • 云消息队列 MQ
  • 微服务引擎
  • 云消息队列 Kafka 版