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

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
可观测可视化 Grafana 版,10个用户账号 1个月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 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项目配置Dockerfile
该Dockerfile基于阿里云Alinux3的Python 3.11.1镜像构建,使用阿里云PyPI镜像加速依赖安装,部署一个运行于5000端口、时区为上海的Python应用。
169 2
|
22天前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
165 1
|
1月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
22天前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
154 0
|
4月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
5月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
337 41
|
6月前
|
程序员 测试技术 开发工具
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
223 21
怎么开发Python第三方库?手把手教你参与开源项目!
|
6月前
|
人工智能 缓存 Java
用 AI 搭建秒杀平台后端,一周搞定所有功能(附超详细踩坑记录)
本文分享如何借助AI技术快速搭建电商秒杀平台后端。通过飞算JavaAI,从需求分析到代码生成全流程智能化,大幅提高开发效率。文章详细记录了技术栈选择(Java、Spring Boot、MySQL、Redis)、系统架构设计、缓存机制优化、数据一致性保障及测试调优等环节,解决高并发难题,助开发者高效完成秒杀平台构建并规避常见坑点。
|
6月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
557 12
|
5月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
335 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践

推荐镜像

更多