造一个智能语音音箱!!!太简单了【语音智能管家】

文章目录

一、获取歌曲

二、播放歌曲

三、总结

【加群获取学习资料QQ群:901381280】

上一篇文章已经介绍了语音智能管家之语音唤醒功能

那今天就来分享语音听音乐的技术教程

一、获取歌曲

通过语音输入:播放海阔天空,程序调用搜索歌曲功能,去搜索“海阔天空”对应的歌曲列表

歌曲来源:本人在自己的网站搭建了歌曲采集系统(2年前搭建的,正好现在可以使用上),个人网站链接:www.chenlove.cn
在这里插入图片描述

在这个基础上进行动态获取歌曲url(根据歌名或者歌手去在线搜索)
先上代码,再进行讲解

这里是程序请求头

####李运辰
headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0",
        "Accept": "application/json,text/javascript,*/*; q=0.01",
        "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
        "Accept-Encoding": "gzip,deflate, br",
        "X-Requested-With": "XMLHttpRequest",
        'Access-Control-Allow-Origin': '*',
        "Cookie": "Hm_lvt_50027a9c88cdde04a70f5272a88a10fa=1537365515; Hm_lpvt_50027a9c88cdde04a70f5272a88a10fa=1537511828; hibext_instdsigdipv2=1",
        "Connection": "keep-alive"
    }

请求参数,其中name是歌曲名字(海阔天空)或者歌手的名字,page是页数

data = {
        'filter': 'name',
        'input': name,
        'page': page,
        'type': typename,
    }

开始发送请求

####李运辰
url = "http://music.chenlove.cn"
r = requests.post(url, headers=headers, data=data)
r.encoding = 'utf-8'
ss = json.loads(r.text)

获取到数据之后,开始取出里面的真是歌曲url
由于树莓派上(python里面)不支持播放在线歌曲,所以需要根据url把歌曲下载到本地(因为可以会搜索很多次歌曲,所以每次下载都把之前的覆盖掉,避免占用存储空间)

这里也是根据requests去发送请求,以流的形式stream读取歌曲,最后保存成music.mp3文件。

resp = requests.get(url=url, stream=True)
    if resp.status_code == 200:
        print("开始下载")
        with open('music.mp3', 'wb') as wf:
            for data in resp.iter_content(1024):
                if data:
                    wf.write(data)
        print("下载结束")

二、播放歌曲

下载好歌曲之后,开始进行播放
这里我百度和google了很多python播放mp3文件的代码,好多都无法使用,只有下面这么效果还算不错

先导入相应的包文件

import pygame  # pip install pygame
pygame.mixer.init()  # 音乐模块初始化

传入mp3音频文件路径filename(本地路径,咱们刚刚下载好的music.mp3文件)
可以设置

  1. 是否循环播放次数loops,默认是0次
  2. 开始播放位置start,默认是从0秒开始
  3. 音量value,设置播放的音量,音量value的范围为0.0到1.0
pygame.mixer.music.load(filename)
# pygame.mixer.music.play(loops=0, start=0.0) 
#loops和start分别代表重复的次数和开始播放的位置。
pygame.mixer.music.play(loops=loops, start=start)
pygame.mixer.music.set_volume(value)  
# 来设置播放的音量,音量value的范围为0.0到1.0。

此外还可以对正在播放的歌曲进行暂停播放

pygame.mixer.music.stop()  # 停止播放

附上完整代码

####李运辰
###播放音乐   貌似只能播放单声道音乐,可能是pygame模块限制
def playMusic(filename, loops=0, start=0.0, value=0.5):
    """
    :param filename: 文件名
    :param loops: 循环次数
    :param start: 从多少秒开始播放
    :param value: 设置播放的音量,音量value的范围为0.0到1.0
    :return:
    """
    flag = False  # 是否播放过
    pygame.mixer.init()  # 音乐模块初始化
    while 1:
        if flag == 0:
            pygame.mixer.music.load(filename)
            # pygame.mixer.music.play(loops=0, start=0.0) loops和start分别代表重复的次数和开始播放的位置。
            pygame.mixer.music.play(loops=loops, start=start)
            pygame.mixer.music.set_volume(value)  # 来设置播放的音量,音量value的范围为0.0到1.0。
        if pygame.mixer.music.get_busy() == True:
            flag = True
        else:
            if flag:
                pygame.mixer.music.stop()  # 停止播放
                break

三、总结

以上就是根据歌名或者歌手去在线搜索音乐,这些操作都可以通过语音唤醒对搜索程序进行操作,使用语音就可以直接搜索歌曲,并播放,还可以通过语音方式对正在播放歌曲的程序进行暂停和继续播放。

欢迎在下方评论。

在平时的科研和任务不多的时候,利用空闲的时间去编写这个系统(因为空闲时间的乐趣就是做自己喜欢的事情,嘻嘻嘻,正好可以用来编写这个系统)。

每次完成一个小进度的时候都会在公众号和博客进行更新,记录一下这个过程(毕竟自己动手完成一件事,还是很有成就感的)

希望大家也能在这个过程中可以学习到一些知识(大牛就忽略了吧,哈哈哈)

同时在这个过程中,大家有更好的建议也可以进行评论交流,让这个系统更加完善。

【加群获取学习资料QQ群:901381280】
【各种爬虫源码获取方式】
识别文末二维码,回复:爬虫源码
欢迎关注公众号:Python爬虫数据分析挖掘,方便及时阅读最新文章
回复【开源源码】免费获取更多开源项目源码

欢迎扫码

【资源说明】 基于Python深度神经网络的终身学习智能家居系统源码(含语音控制+人脸识别+信号控制)带项目说明.zip 以树莓派为控制中心,以智能音箱和基于flask web开发的用户界面( UI)为用户交互终端。开发与集成了 Home Assis- tant平台、百度语音平台、图灵机器人,实现语音交互控制室内终端设备,采用 JavaScript设计UI图形界面实现远程控制家居设备。模糊技术可以模拟人类的逻辑推理,执行判断和决策功能,模糊神经网络在模糊的技术上增加学习能力,有效的降低数据集中模糊和不确定的部分。 实现了语音控制的功能 1. 主要负责通过语音交流实现对家电的控制。 2. 在接受使用者的语音调节指令时,进行数据采集存放到数据库中,再进行训练。为自动调整屋内环境做准备。提供个性化的智能管理。 光照强度控制: 1. 控制对象:灯具 2. 由光照传感器接受光照强度,将信息传递给智能管家,由智能管家进行分析处理,自动调整灯具的亮度,构建一个适宜的光照环境。 室内温度控制: 1. 控制对象:空调或地暖 由温度传感器接受室内温度,将信息传递给智能管家,由智能管家进行分析处理,自动调整空调或地暖的温度设定,构建一个适宜的温度环境。 构建一个基于深度神经网络的终身学习智能家居系统,实现收集用户日常生活习惯数据,并自主学习,创建一个个性化的智能家居系统。 关键技术: 人脸识别,语音识别,信号控制 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyc2016012170

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值