目录
详细设计说明书 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