热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

易语言如何制作语音聊天机器人

这篇文章将为大家详细讲解有关易语言如何制作语音聊天机器人,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收

这篇文章将为大家详细讲解有关易语言如何制作语音聊天机器人,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

常量数据表

.版本 2
.常量 对话前, "<文本长度: 7>", , text":"
.常量 对话后, "<文本长度: 2>", , "}
.常量 token前, "<文本长度: 16>", , "access_token":"
.常量 双撇号, "<文本长度: 1>", , "
.常量 apikey, "<文本长度: 24>", , Tc9KWDDFPLm1QNVPgEx7kco6
.常量 Secretkey, "<文本长度: 32>", , DnqP3q2GwOqGuYI9sUhLT4l7uC2f1yVL
.常量 识别返回前, "<文本长度: 10>", , result":["
.常量 识别返回后, "<文本长度: 3>", , "],

语音聊天机器人的代码

此功能需要加载精易模块5.6

.版本 2
.支持库 eMMedia
.支持库 ESpeechEngine
.支持库 internet
.支持库 spec
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 API地址, 文本型
.程序集变量 APIkey, 文本型
.程序集变量 唤醒名, 文本型, , "0"
.程序集变量 音量, 短整数型
.程序集变量 计时, 整数型
.程序集变量 最大频段, 整数型
.程序集变量 发送内容, 文本型
.子程序 _语音识别1_识别到语音
.参数 识别文本, 文本型
.如果真 (寻找文本 (识别文本, 唤醒名 [1], , 假) ≠ -1) &#39; 识别到唤醒名就开始录音。
 录音音波1.打开 () &#39; 这个是检测麦克风音量的用的
 最大频段 = 录音音波1.取上限 () - 1
 播放音乐 (#开始声音, )
 设置唤醒按钮.标题 = “正在聆听”
 录音1.录制 () &#39; 开始录音……
 判断是否说话时钟.时钟周期 = 10 &#39; 判断是否在说话的时钟。
.如果真结束
.子程序 _设置唤醒按钮_被单击
语音识别1.创建 (0, 1) &#39; 初始化语音识别引擎,初始化失败的需要下载微软的语音识别引擎Microsoft Speech SDK v5.1
加入成员 (唤醒名, 编辑框1.内容)
语音识别1.加入常用 (唤醒名)
信息框 (“设置成功,请直接对着麦克风呼唤: ” + 编辑框1.内容 + “ 即可开始对话”, 0, )
设置唤醒按钮.禁止 = 真
.子程序 机器人对话, 文本型, , 调用图灵机器人API接口
.参数 发送的内容, 文本型
.局部变量 数据, 文本型
.局部变量 返回内容, 文本型
.局部变量 需要的内容长度, 整数型
数据 = 编码_gb2312到utf8 (发送的内容) &#39; ——————————先转换成utf8码
返回内容 = 到文本 (HTTP读文件 (“http://www.tuling123.com/openapi/api?key=bad4d07e4c1c439b935a922906176478&info=” + 数据 + “&loc=北京&userid=a1”)) &#39; ——————————发送给图灵
返回内容 = 编码_utf8到gb2312 (返回内容) &#39; —————————— 先把返回的数据转成简体中文的编码
调试输出 (返回内容) &#39; ——————————调试输出一下看看
需要的内容长度 = 取文本长度 (返回内容) - 寻找文本 (返回内容, #对话前, , 假) - 取文本长度 (#对话前) - 取文本长度 (#对话后) + 1 &#39; 全部的长度 - 前面文本所在位置 - 前面文本长度 - 后面文本长度 + 1,得出来的结果就是需要的文本长度
返回内容 = 取文本中间 (返回内容, 寻找文本 (返回内容, #对话前, , 假) + 取文本长度 (#对话前), 需要的内容长度) &#39; ——————————起始位置是前面文本所在位置 + 前面文本的长度
编辑框3.内容 = 返回内容 &#39; ——————————编辑框上显示出来
返回 (返回内容)
.子程序 获取token, 文本型, , 获取百度验证信息
.局部变量 临时数组, 文本型, , "0"
.局部变量 返回的文本, 文本型
.局部变量 token, 文本型
返回的文本 = 到文本 (HTTP读文件 (“https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=” + #apikey + “&client_secret=” + #Secretkey))
临时数组 = 分割文本 (返回的文本, #token前, )
token = 取文本左边 (临时数组 [2], 寻找文本 (临时数组 [2], #双撇号, , 假) - 1)
返回 (token)
.子程序 合成语音, , , 调用百度语音合成API接口
.参数 需要合成的文本, 文本型
.局部变量 句柄, 整数型
.局部变量 z, 文本型
.局部变量 返回的语音, 字节集
z = 需要合成的文本
z = 编码_gb2312到utf8 (z) &#39; 先转换成utf8编码
z = 编码_URL编码 (z) &#39; 再进行URL编码
媒体播放1.停止 ()
媒体播放1.关闭 () &#39; 关闭正在播放的才能写出新的语音
返回的语音 = HTTP读文件 (“http://tsn.baidu.com/text2audio?tex=” + z + “&lan=zh&ctp=1&cuid=” + 取本机网卡物理地址 () + “&tok=” + 获取token () + “&pit=9”)
写到文件 (“C:\Users\Administrator\Desktop\1.mp3”, 返回的语音)
媒体播放1.打开 (“C:\Users\Administrator\Desktop\1.mp3”)
媒体播放1.播放 (-1, )
调试输出 (“合成语音完成”)
设置唤醒按钮.标题 = “完成”
.子程序 _判断播放状态时钟1_周期事件, , , 如果播放完了就关闭文件,这样才能写出新的文件
.判断开始 (媒体播放1.取状态 () = 2)
 媒体播放1.关闭 ()
.默认
.判断结束
.子程序 _判断是否说话时钟_周期事件
录音音波1.取声波值 (音量, 2047)
音量 = 取绝对值 (音量)
.判断开始 (音量 > 200)
 计时 = 0
.判断 (计时 > 100) &#39; 时钟周期是10,如果连续100次(也就是1秒钟)音量都小于200就结束录音。这个作用就是1秒钟之内没说话就停止录音。
 判断是否说话时钟.时钟周期 = 0
 录音1.停止 ()
 播放音乐 (#结束声音, )
 设置唤醒按钮.标题 = “正在识别”
 录音1.保存文件 (取运行目录 () + “\ly.wav”, 真)
 合成语音 (机器人对话 (识别 ()))
 计时 = 0
.默认
 计时 = 计时 + 1
.判断结束
.子程序 识别, 文本型, , 调用百度语音识别API接口
.局部变量 MAC, 文本型
.局部变量 语言, 文本型, , , 中文=zh、粤语=ct、英文=en,不区分大小写,默认中文
.局部变量 返回内容, 文本型
MAC = 取本机网卡物理地址 ()
语言 = “zh”
返回内容 = 编码_utf8到gb2312 (到文本 (网页_访问 (“http://vop.baidu.com//server_api?lan=” + 语言 + “&format=wav” + “&rate=8000” + “&channel=1” + “&cuid=” + MAC + “&token=” + 获取token (), 1, , , , “Content-Type:audio/wav;rate=8000;Content-length=999999”, , , 读入文件 (取运行目录 () + “\ly.wav”), )))
返回内容 = 取文本中间 (返回内容, 寻找文本 (返回内容, #识别返回前, , 假) + 取文本长度 (#识别返回前), 寻找文本 (返回内容, #识别返回后, , 假) - 寻找文本 (返回内容, #识别返回前, , 假) - 取文本长度 (#识别返回前)) &#39; 取得需要的文本
调试输出 (“识别后的内容:” + 返回内容)
编辑框2.内容 = 返回内容
返回 (返回内容)

运行结果:

易语言如何制作语音聊天机器人

关于“易语言如何制作语音聊天机器人”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
QueenieYam任嘉明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有