• 基于机器学习的自动音乐生成播放器


    目录
    详细设计说明书 1
    1 引言 1
    1.1 编写目的 1
    1.2 背景 1
    2. 此项目的任务提出者:西电软件工程课程组、西电软件开发小组 1
    1.3 定义 2
    1.4 参考资料 2
    3 程序描述 4
    3.1 011 参数调整模块 4
    3.1.3 界面设计 4
    3.1.4 参数调整的内部逻辑 5
    3.2 012 自动谱曲模块 6
    3.2.3 界面设计 7
    3.2.4 自动谱曲的内部逻辑 7
    3.3 013 本地保存模块 9
    3.3.1 功能流程图 9
    3.3.3 界面设计 10
    3.3.4 本地保存的内部逻辑 10
    3.4 021 播放控制模块 11
    3.4.3 界面设计 11
    3.4.4 播放控制的内部逻辑 11
    3.5 022 进度显示模块 12
    3.6 023 播放列表模块 14
    3.7 024 音量控制模块 15
    1引言
    1.1编写目的
    本说明是基于机器学习的自动音乐生成软件——Composer软件产品的详细设计和实现说明,本文档记录了系统整体实现上技术层面上的考虑,并且以需求说明作为依据,同时该文档将作为产品实现、特性 要求和控制的依据。
    软件开发小组的每一位参与开发成员应该阅读本说明,以清楚产品在技术方面的要求和实现策略,本手 册将进行技术评审和技术的可行性检查,同时为下一步的测试报告提供框架。此外,软件开发小组的指 导老师也可以通过阅读本文档,了解开发小组在软件开发过程中的详细设计,从而给出宝贵的意见和建 议。
    1.2背景
    说明:
    1.待开发软件系统的名称:基于机器学习的自动音乐生成播放器——Composer
    2.此项目的任务提出者:西电软件工程课程组、西电软件开发小组
    开发者:西电软件开发小组
    将运行该软件的计算站(中心):用户本地运行、服务器运行后端
    1.3定义
    A.LSTM (Long Short-Term Memory 长短期记忆网络)
    B.UI (User Interface 用户界面)
    1.4参考资料
    相关的文件:
    A.软件介绍《基于机器学习的自动音乐生成播放器——Composer》
    B.《基于机器学习的自动音乐生成播放器软件需求分析报告》参考资料:
    A.《2020级软件工程版 课程实践题目及介绍》
    B.国家标准《概要设计说明书(GB8567-88)》
    C.《软件工程导论(第六版)》清华大学出版社
    C. 《LSTM(长短期记忆网络)介绍与实现》

    2程序系统的结构
    系统由2大模块组成,7小模块组成:
    在这里插入图片描述

    from keras.models import load_model
    from collections import Counter
    from keras.utils import to_categorical
    import numpy as np
    from music21 import converter, instrument, note, chord, stream
    
    def get_data(filename):
        """从文件中获取音符
    
        :param filename: [文件名]
        :type filename: [str]
        :return: [返回音符]
        :rtype: [list]
        """
        with open(filename) as f:
           all_notes = f.readlines()
        return [ note[:len(note)-1]  for note in all_notes]
    
    def predict_next(X_predict, model):
        """通过前100个音符,预测下一个音符
    
        :param X_predict: [100个音符]
        :type X_predict: [list]
        :return: [下一个音符的id]
        :rtype: [int]
        """
        prediction = model.predict(X_predict)
        index = np.argmax(prediction)
        return index
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    网络的层次
    Linux命令之chage命令
    计算机专业毕业论文java毕业设计开题报告SSM同学录[包运行成功]
    推荐给中小企业的CRM系统软件
    【教学类-15-01】20221115《学号(姓名)描字帖-A4横版-竖切》(中班)
    c# .net6 Task 多线程介绍
    图解来啦!机器学习工业部署最佳实践!10分钟上手机器学习部署与大规模扩展 ⛵
    leetcode的TreeNode工具类
    读像火箭科学家一样思考笔记02_与不确定性共舞(下)
    Linux 内核模块API之find_module
  • 原文地址:https://blog.csdn.net/newlw/article/details/127994871