当前位置: 首页 > news >正文

更改网站后台图书馆网站建设情况总结

更改网站后台,图书馆网站建设情况总结,学全屋定制设计怎么入手,公司网站备案必须是企业信息么树莓派语音助手从诞生的第一天开始,我就想着让它能像小爱音箱一样,可以语音控制播放音乐。经过这些日子的倒腾,今天终于实现了。 接下里,和大家分享下我的实现方法:首先音乐播放模块用的是我在上一篇博文写的《用sound…

树莓派语音助手从诞生的第一天开始,我就想着让它能像小爱音箱一样,可以语音控制播放音乐。经过这些日子的倒腾,今天终于实现了。

接下里,和大家分享下我的实现方法:首先音乐播放模块用的是我在上一篇博文写的《用sounddevice实现连续的音乐曲库播放》,然后语义解析部分依旧用的是RASA,具体做法同前不久实现的《让树莓派智能语音助手实现定时提醒功能》,即用RASA解析语义,返回关键字指令给语音助手,语音助手负责调用sounddevice编写的语音库执行指令。

RASA部分主要定义了4个新的intent和4个新的actions。

如上分别是stories.md和nlu.md新增部分,最右边的是其中一个actions的举例,没啥技术含量,剩下三个就不贴了。另外,domain.yml部分记得把intent和actions定义一下。这些就是RASA的全部内容了。

再来看语音助手的demo.py部分。这次我把收到语义解析后的代码都重新改写了一下:

if resp == "有需要再叫我":print("对话结束,等待呼唤……"+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) status = 0elif resp == 'play_music':resp = ""if flag:playMusic()elif resp == 'next_song':resp = ""nextSong()elif resp == 'prev_song':resp = ""prevSong()elif resp == 'stop_music':resp = ""stopMusic()else:index0 = resp.find('5分钟后提醒')if index0 != -1:text0 = '/EXTERNAL_reminder't = threading.Timer(300, act_remind, args=[text0])t.start()if resp != "":print("回复内容:"+resp)tts.text_to_speech(resp)else:print("播放音乐,对话结束,等待呼唤……"+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))status = 0time.sleep(0.5)

以上代码放在callback函数“print("解析耗时:"+f'{time.time() - t:.4f}s')”这句话之后。除了这部分,再定义四个函数。

import music
import randommusicThreads = []
count = 0
index = 0
flag = Truedef playMusic():global indexglobal countglobal flagglobal musicThreadsmusicThread = music.MusicThread()musicThreads.append(musicThread)count = musicThread.getCount()index = random.randint(0, count-1)musicThread.setId(index)musicThread.start()flag = Falsedef stopMusic():global indexglobal countglobal flagglobal musicThreadsindex = musicThreads[-1].getId()musicThreads[-1].setId(count-1)musicThreads[-1].stop()flag = Truedef nextSong():global indexglobal musicThreadsmusicThreads[-1].stop() def prevSong():global indexglobal musicThreadsindex = index - 1musicThreads[-1].setId(index)musicThreads[-1].stop()

所有这些语音助手部分的代码都是基于最初的《树莓派智能语音助手之功能整合》修改的,有兴趣的小伙伴可以自行拼接。

好了,执行了如上代码后,树莓派智能语音助手也可以通过语音播放音乐了。

最后补充3个事情:

1.语音控制模块我是调用了sounddevice和soundfile的库,其中soundfile又是基于libsndfile来解码音频文件的。但是,我的raspbian能升级的libsndfile版本最高只有1.0.28,这个库在1.1.0版本下是不支持MP3解码的,所以,最终播放的音乐,我都是在pc端把MP3转格式为wav后才能使用。但是我在pc端windows下没有这个问题。在使用这个库之前可以先查看一下libsndfile的版本。

2.用于语音识别的录音模块我用的也是sounddevice,所以,要修改下record.py,在下面这句中添加一个参数device=,等号后面填写你录音所用的设备编号。

audio = sd.rec(int(self.duration * self.sample_rate), samplerate=self.sample_rate, channels=1)

查看有哪些音频设备,可以在终端输入:

python -m sounddevice

回车后就会list你可用音频设备列表,如下图就是我树莓派上的,我选择的是2号USB PNP SOUND DEVICE,所以上面新增的device参数可以写device=3

这样修改后,就可以让音乐播放和语音输入两个功能相对独立存在。

3.一开始在执行音乐播放时遇到了output underflow的提示,导致语音助手都卡壳了。后来查了文档解决了这个问题,具体解决方法可以看:

​​​​​​​用sounddevice播放音乐遇到output underflow提示-CSDN博客

http://www.yayakq.cn/news/648199/

相关文章:

  • 网站建设佛山如何给网站加二级域名
  • 成都网站建设成都app开发公司网站如何上传图片
  • 做外贸是不是必须有网站制作系统
  • 太原门户网站建设网站找什么问题
  • 烟台优化网站公司哪家好wordpress login 插件
  • 长沙网站开发 58微信开发社区
  • 公司网站功能模块网站建设服务费应计入什么科目
  • 哪个网站是专做宝宝饭的公司名字大全及寓意
  • 企业 手机网站网站设计 做鼠标效果
  • 怎么自己做网站模板有什么网站可以做电子版邀请函
  • 网站建设优化推广排名网页设计实验报告单模板
  • 长宁专业网站制作公司erp系统介绍
  • 小程序开发网站设计制作中科建建设发展有限公司网站
  • 成都网站备案查询门户网站编辑流程
  • 可商用的免费素材网站wordpress免费主机空间
  • 凡科网站的ftp聊城手机网站建设价格
  • 网站建设技术包括廊坊网站建设技术外包
  • 企业电子商务网站开发数据库设计wordpress tdk优化
  • 招标网站建设申请下载贵州省建设厅网站
  • 网站在线咨询系统wordpress 好用吗
  • 聊城市建设局网站首页wordpress 头像加速
  • 昆明行业网站建设自己做的网站打开超慢
  • 网站建设过程发生的费用生鲜网站建设背景
  • 手机网站发号系统源码高校信息化建设 网站
  • 襄阳住房和城乡建设局网站首页2017响应式网站 全站
  • 门户网站的基本特征有网站建设整个流程图
  • 视觉网站建设wordpress备份图文文章
  • wordpress可以做什么站按天计费的seo弊端
  • 常德经开区网站官网wordpress适用于图片站的主题
  • 建行的官方网站吗h5做的网站如何连接数据库