0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者说 | 手语翻译系统系列之使用旭日X3派实现实时语音转写

地瓜机器人 2023-01-05 14:06 次阅读

准备工作

  • 硬件部分:旭日X3派,USB免驱摄像头,电源适配器,烧录Ubuntu系统的SD卡,USB扬声器,显示屏(或者VNC/SSH远程连接)

  • 软件部分:Thonny IDE集成开发环境
2.jfif

注意:购买麦克风时要购买二合一的USB麦克风,切勿购买3.5mm耳机接口传输的麦克风。

首先更新软件源和所有软件,只需要使用快捷键ctrl+alt+T打开命令行,输入以下命令,耐心等待即可。

# 更新软件源 apt-get update # 更新升级所有软件 apt-get upgrade

开发工具依然是沿用Thonny,作为一款轻量化的python集成开发环境,对新手十分友好,简单易上手,后续安装各种python依赖库也相当方便。安装完成后同样是使用快捷键ctrl+alt+T打开命令行,输入Thonny启动,然后开始项目的重头戏——安装项目依赖库,需要用到的第三方库和版本如下,大家可以根据这个顺序进行安装,以免遗漏(也可以复制到一个新的txt文件利用pip一次性安装)。

cffi==1.12.3 gevent==1.4.0 greenlet==0.4.15 pycparser==2.19 six==1.12.0 websocket==0.2.1 websocket-client==0.56.0

注意:有些库安装失败的话代码可能不会有高亮提示,但运行时会报错,所以,出现报错第一时间检查第三方库是否成功安装。

本文着重介绍需要用到的Python标准GUI库——Tkinter。

在Python程序中,Tkinter是Python的一个模块,它可以像其他模块一样在Python交互式shell中(或者“.py”程序中)导入,导入Tkinter模块后,就可使用Tkinter模块中的函数、方法等进行GUI编程。同时,开发者也可以使用Tkinter库中的文本框、按钮、标签等组件实现GUI开发。

首先,需检查Tkinter是否成功导入,如运行无误则说明导入成功,否之,则需要重新安装Tkinter库。

import tkinter

接着创建一个窗口,先使用http://tkinter.Tk生成一个主窗口对象,然后才能使用Tkinter模块中其他的函数和方法等元素。生成主窗口以后才可以向里面添加组件,或者直接调用其mainloop()方法进行消息循环。示例如下:

import tkinter #导入Tkinter模块 top = tkinter.Tk()#生成一个主窗口对象 top.mainloop()#进入消息循环

我们要有交互,就需要有组件。组件与窗口一样,也是通过Tkinter模块中相应的组件函数生成的。在生成组件以后,就可以使用pack、grid或place等方法将它添加到窗口中,以下示例给窗口增添两个按钮:

import tkinter #导入Tkinter模块 root = tkinter.Tk()#生成一个主窗口对象 label= tkinter.Label(root, text="Python, tkinter!") label.pack()#将标签添加到窗口中 button1 = tkinter.Button(root, text="按钮1")#创建按钮1 button1.pack(side=tkinter.LEFT)#将按钮1添加到窗口中 button2 = tkinter.Button(root, text="按钮2")#创建按钮2 button2.pack(side=tkinter.RIGHT)#将按钮2添加到窗口中 root.mainloop()#进入消息循环

3.jfif

至此,用Tkinter库创建一个带交互功能的窗口已经完成,大家感兴趣可以继续学习其他组件,这里就不再赘述。

接下来进行云服务器部署,本项目选用云端语音平台,登录平台后,通过右上角「控制台」,或右上角下拉菜单的「我的应用」进入控制台。如果账户未曾创建过应用,平台会引导创建,创建完成后,便可通过左侧的服务列表,选择要使用的服务。

在服务管理面板中,将看到这个服务对应的可用量、历史用量、服务接口的验证信息,还有可以调用的API和SDK。值得注意的是,要将应用创建后生成的APPID,APISecret和APIKey去替换代码中的APPID,APISecret和APIKey一定要一一对应,否则会影响代码的正常运行!

def run(): global wsParam wsParam = Ws_Param(APPID='你的APPID', APIKey='你的APIKey',APISecret='你的APISecret') websocket.enableTrace(False) wsUrl = wsParam.create_url() ws = websocket.WebSocketApp(wsUrl, on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE}, ping_timeout=2)

随后选择需要的语种和服务即可,支持除中文和英语外的51种外语,24种方言和1种民族语言。

4.png

实现原理

本项目主要就是利用python程序录制本地mp3格式的用户音频,并将音频上传到云端语音平台进行实时转写,最后利用GUI库在屏幕上展示转写结果(云端语音平台翻译文本的方法和窗口的实现,点击文末阅读原文即可获取)。

效果展示

结果显示,本项目对本地资源占用较小,得益于旭日X3派的高算力和高性能,温度的控制让人十分满意(和上一个项目手语翻译终端同时运行也没有问题)。

5.jfif


6.jfif

性能测试

系统测试方案:将程序导入旭日X3派中,接入电源后等待初始化完成,在安静的室内环境下,在麦克风前分别测试普通话,英语,方言(东北话/四川话),将转写终端实时转写的准确率记录,同时将识别的总时长记录收集。

测试数据如下:

7.jfif


8.jfif

结果分析:接收到语音信息后到完成转写结果的显示总时长在0.5秒之内,可基本实现实时转译,对普通话和英文以及51种外语,24种方言和1种民族语言的识别率在95%以上。

结论:实现语音转写除了支持普通话和英语外,支持51个外国语种(包括日语、俄语、泰语、捷克语等常用语种)、24种方言(包括四川话、广东话、河南话、上海话,闽南语等常用方言),另外,还支持一种民族语言(彝语),真正做到无障碍沟通交流。

本文转自地平线开发者社区
原作者:鑫辰大海王

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19014

    浏览量

    303231
  • 语音
    +关注

    关注

    3

    文章

    384

    浏览量

    37994
  • 人工智能
    +关注

    关注

    1791

    文章

    46845

    浏览量

    237535
收藏 人收藏

    评论

    相关推荐

    讯维智能语音转写系统:开启智能会议记录新篇章!

    随着人工智能技术的飞速发展,智能语音转写系统逐渐走进我们的日常生活和工作之中,成为提升工作效率、优化信息处理的重要工具。讯维智能语音转写
    的头像 发表于 11-15 15:41 108次阅读
    讯维智能<b class='flag-5'>语音</b><b class='flag-5'>转写</b><b class='flag-5'>系统</b>:开启智能会议记录新篇章!

    讯维智能语音转写系统核心优势大解析!

    凭借其高精度识别、实时转写、智能纠错以及多语种支持等核心优势,正在深刻改变着会议记录、教育培训、采访报道和法律取证等多个领域的工作方式,成为提升工作效率和优化信息处理的重要工具。下面我们来整理下讯维智能语音
    的头像 发表于 11-15 15:24 165次阅读
    讯维智能<b class='flag-5'>语音</b><b class='flag-5'>转写</b><b class='flag-5'>系统</b>核心优势大解析!

    香橙与昇思MindSpore合作提速,软硬结合助力开发者构建创新AI应用

    AIpro开发板构建创新AI应用,助力开发者积累开发经验、繁荣人工智能产业生态。目前,昇思MindSporeAI框架已实现预置在香橙AIp
    的头像 发表于 11-01 17:02 684次阅读
    香橙<b class='flag-5'>派</b>与昇思MindSpore合作提速,软硬结合助力<b class='flag-5'>开发者</b>构建创新AI应用

    开发者空间实践指导:基于 3 大 PaaS 主流服务轻松实现文字转换语音

    【摘要】 基于 CodeArts API 设计语音合成接口,基于 API Explorer 调试接口,并利用 CodeArts IDE 实现数据流转换为音频 案例简介 开发者将在云主机中
    的头像 发表于 09-13 16:25 421次阅读
    <b class='flag-5'>开发者</b>空间实践指导:基于 <b class='flag-5'>3</b> 大 PaaS 主流服务轻松<b class='flag-5'>实现</b>文字转换<b class='flag-5'>语音</b>

    讯维智能语音转写系统确保企业数据的安全性

    随着人工智能技术的飞速发展,智能语音转写系统逐渐走进我们的日常生活和工作之中,成为提升工作效率、优化信息处理的重要工具。讯维智能语音转写
    的头像 发表于 08-02 15:53 577次阅读

    开源项目!设计一款智能手语翻译眼镜

    这个项目是一款创新的智能手语翻译眼镜,它能够实时地将手语转换为听得见的语音。这款眼镜采用了VIAM平台和树莓
    发表于 05-20 15:59

    鸿蒙开发者预览版如何?

    在24年的华为鸿蒙发布会中表示。预览版已经向开发者开放申请,首批支持的机型有三款分别为华为 Mate 60、华为Mate 60 Pro、华为Mate X5。 其HarmonyOS NEXT去除
    发表于 02-17 21:54

    鸿蒙系统优缺点,能否作为开发者选择

    星河版已经是纯血鸿蒙,但是它的发展一些周期。生态圈的建立难度大,各大厂商加入鸿蒙原生开发需要时间累积。 鸿蒙开发人才空缺,由于鸿蒙作为一款新型的系统,程序员们都是从0学起。所以市面上很少有鸿蒙
    发表于 02-16 21:00

    【飞腾4G版免费试用】大家来了解飞腾4G版开发

    、RT-Thread等国产操作系统。 在飞腾在电子发烧友论坛构建了在飞腾开发者社区,大家也可以通过社区资料更多的了解飞腾4G版开发
    发表于 01-02 22:43

    开发者】HarmonyOS实践应用状态变量共享

    # 开发者 # 【开发者】栏目是为HarmonyOS开发者提供的展示和分享平台,在这里,大家可以发表自己的技术洞察和见解,也可以展示自己
    的头像 发表于 12-26 21:20 760次阅读
    【<b class='flag-5'>开发者</b><b class='flag-5'>说</b>】HarmonyOS实践<b class='flag-5'>之</b>应用状态变量共享

    开发者开发案例:使用canvas实现图表系列折线图

    # 开发者 # 【开发者】栏目是为HarmonyOS开发者提供的展示和分享平台,在这里,大家可以发表自己的技术洞察和见解,也可以展示自己
    的头像 发表于 12-13 16:05 592次阅读
    【<b class='flag-5'>开发者</b><b class='flag-5'>说</b>】<b class='flag-5'>开发</b>案例:使用canvas<b class='flag-5'>实现</b>图表<b class='flag-5'>系列</b><b class='flag-5'>之</b>折线图

    欢迎加入飞腾开发者社区,感谢每一位开发者

    今年10月,飞腾联合电子发烧友论坛一起策划了飞腾开发板测评活动,受到了广大开发者的喜爱。
    的头像 发表于 12-11 17:39 1366次阅读
    欢迎加入飞腾<b class='flag-5'>派</b><b class='flag-5'>开发者</b>社区,感谢每一位<b class='flag-5'>开发者</b>!

    欢迎加入飞腾开发者社区,感谢每一位开发者

    ://bbs.elecfans.com/group_1708 飞腾开发者社区部分内容截图 回顾合作历程,从2023年开始,华秋 · 电子发烧友就与飞腾建立了密切的合作关系,双方团队共同努力,实现了许多
    发表于 12-11 16:11

    开发者开发案例分享:万能卡片也能用来玩游戏

    # 开发者 # 【开发者】栏目是为HarmonyOS开发者提供的展示和分享平台,在这里,大家可以发表自己的技术洞察和见解,也可以展示自己
    的头像 发表于 11-30 21:15 508次阅读
    【<b class='flag-5'>开发者</b><b class='flag-5'>说</b>】<b class='flag-5'>开发</b>案例分享:万能卡片也能用来玩游戏

    地平线机器人开发UART串口通信程序

    运行示例程序 接下来就可以运行串口通信的例程了。 $ sudo python3 test_serial.py 实物接线完成后,在旭日X3的终端中输入指令启动例程,很快就可以在终端中看
    的头像 发表于 11-27 10:55 374次阅读