# Raag detection using Hidden Markov Model
The goal of the project is to detect the [raag](https://en.wikipedia.org/wiki/Raga) from a new musical sequence using a [Hidden Markov Model(HMM)](https://en.wikipedia.org/wiki/Hidden_Markov_model). A raag is a musical concept in Indian classical music that is defined by a set of notes and characterized by certain melodic transitions. These unique transitions are used to differentiate one raag from another. Typically, trained musicians with years of experience can accurately discern raags. In this work, a HMM is used to learn the transitional probabilites between musical notes that characterize each raag. The pitch contour is used as the observations/features for the model. When testing a new sequence, the maximum log likelihood given each model is chosen to be the identified raag. An accuracy of 81.25% was achieved on the test set of 16 samples across different modalities.
More information can be found in the [report](./report/root.pdf).
The slides can be found here: https://drive.google.com/open?id=11s1sBFKECmgvhUHfe8tk_3WZ1P_ojTN3ISCg9Lz3lKM
## Description of files
The main code is in `main.m` and its dependencies are located in `src/`
`main.m` has the following 3 sections:
To test, please run the last section!
- data preprocessing: processes the data in the 'train' directory and creates 'models/model.mat'
- training (baum welch) is done on 'models/data.mat' and 'models/model.mat' is generated.
- testing on the files located in the 'test' directory with 'models/model.mat'
Directories:
- models - to store intermediate data/models
- plots - figures, plots generated
- src - all the src files which main.m is dependent on.
- test - contains 16 test sequences
- train - contains 3 sequences for each of the 5 raag class.
`./praat` was used to create the pitch contour
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7814
最新资源
- UCAS研一课程大数据分析的笔记和代码.zip
- 基于java的电影订票及评论网站的设计和实现.docx
- 基于java的反欺诈平台的设计和实现.docx
- 基于java的电影院购票系统的设计和实现.docx
- 基于java的电影订票及评论网站的设计和实现开题报告.docx
- 基于java的高校专业实习管理系统的设计和实现.docx
- vgg19-dcbb9e9d.pth
- 基于java的个人云盘管理系统的设计和实现.docx
- comsol相场断裂模拟
- 基于java的房地产销售管理系统的设计和实现.docx
- 基于java的机动车号牌管理系统的设计和实现.docx
- 基于java的火锅店管理系统的设计和实现.docx
- 基于java的环保网站的设计和实现.docx
- 基于java的教师个人成果管理系统的设计和实现.docx
- 基于java的家政服务平台的设计和实现.docx
- 基于java的计算机学院校友网的设计和实现.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈