{"id":13861577,"url":"https://github.com/mathigatti/midi2voice","last_synced_at":"2025-07-14T09:32:58.331Z","repository":{"id":41262450,"uuid":"140364503","full_name":"mathigatti/midi2voice","owner":"mathigatti","description":"Singing synthesis from MIDI file","archived":false,"fork":false,"pushed_at":"2022-07-20T18:48:07.000Z","size":190781,"stargazers_count":278,"open_issues_count":3,"forks_count":33,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-07-05T12:57:19.362Z","etag":null,"topics":["midi","python","singing-synthesis","singing-voice","sinsy","tts","vocaloid","voice"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathigatti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"ko_fi":"mathigatti"}},"created_at":"2018-07-10T02:10:07.000Z","updated_at":"2025-06-22T09:59:24.000Z","dependencies_parsed_at":"2022-07-21T12:45:05.528Z","dependency_job_id":null,"html_url":"https://github.com/mathigatti/midi2voice","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mathigatti/midi2voice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathigatti%2Fmidi2voice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathigatti%2Fmidi2voice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathigatti%2Fmidi2voice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathigatti%2Fmidi2voice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathigatti","download_url":"https://codeload.github.com/mathigatti/midi2voice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathigatti%2Fmidi2voice/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265269479,"owners_count":23737859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["midi","python","singing-synthesis","singing-voice","sinsy","tts","vocaloid","voice"],"created_at":"2024-08-05T06:01:25.466Z","updated_at":"2025-07-14T09:32:55.481Z","avatar_url":"https://github.com/mathigatti.png","language":"Python","funding_links":["https://ko-fi.com/mathigatti"],"categories":["Python"],"sub_categories":[],"readme":"# Singing Synthesis from MIDI file\n\nThis script relies on the [sinsy.jp](http://sinsy.jp/) website from the Nagoya Institute of Technology which implements a HMM-based Singing Voice Synthesis System.\n\nYou can find a sample merged with the instrumental audio [here](https://soundcloud.com/mathias-gatti/shallow-midi2voice).\n\n## Requirements\n\n- musescore: It's used to convert midi to musicxml\n- python 3\n\n## Installation\n\n```bash\npip install git+git://github.com/mathigatti/midi2voice.git\n```\n\n## Usage\n\nYou can use it running the installed module using `python -m midi2voice`. It has serveral parameters, most are optional and you need to use them only if you want to specify something different than the default\n\n```\npython -m midi2voice\n  -h, --help # show this help message and exit\n  -l LYRICS, --lyrics LYRICS # Path to txt file containing the lyrics\n  -m MIDI, --midi MIDI # Path to midi file\n  -lang {english,japanese,mandarin} # Language of the voice (OPTIONAL / DEFAULT: english)\n  -g {female,male} # Gender voice (female/male) (OPTIONAL / DEFAULT: female)\n  -i VOICEINDEX # Each language has different voices, for example japanese has 4 different female voices at the moment, mandarin only one. (OPTIONAL / DEFAULT: 0)\n  -t TEMPO # Song tempo in BPMs (OPTIONAL / DEFAULT 80)\n  -s SYNALPHA # Gender parameter [between -0.8 and 0.8, default: 0.55]\n  -v VIBPOWER # Vibrato intensity [between 0 and 2, default: 1]\n  -p F0SHIFT # Pitch shift [in half tones, between -24 and 24, default: 0]\n  -d DESTINATION_FOLDER # Destination folder\n```\n\n### Usage example\n\nCheck the midi and text samples [here](https://github.com/mathigatti/midi2voice/tree/master/inputs).\n\n```bash\n# Print help\npython3 -m midi2voice -h\n\n# Basic example\npython -m midi2voice -l shallow.txt -m shallow.mid\n\n# Generate the voice given a midi file and a text file with the lyrics\npython -m midi2voice -l shallow.txt -m shallow.mid -lang english -g female -t 96\n```\n\n### Try it on Colab\n\nIf you don't have python installed or you just want to check it quickly you can try it online [here](https://colab.research.google.com/drive/1_lZiwQfuHIVaEFmAibPKUMprZ_0yU35L?usp=sharing).\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1_lZiwQfuHIVaEFmAibPKUMprZ_0yU35L?usp=sharing)\n\n## Voices available\n\nAt the moment [sinsy.jp](http://sinsy.jp/) provides this voices. You can use the VOICEINDEX parameter to choose them.\n\n- Japanese\n\n    - Female\n\n        * 0 - f00001j_dnn_beta4 : Yoko : Japanese\n        * 1 - f00002j_dnn_beta4 : Xiang-Ling : Japanese\n        * 2 - f01018j_dnn_beta4 : undefined : Japanese\n        * 3 - f00001j : Yoko : Japanese\n        * 4 - f00002j : Xiang-Ling : Japanese\n        * 5 - f00004j_beta : Namine Ritsu S : Japanese\n        * 6 - f00005j : undefined : Japanese\n\n    - Male\n\n        * 0 - m01083j_dnn_beta4 : undefined : Japanese\n        * 1 - m01083j : undefined : Japanese\n\n- English\n\n    - Female\n\n        * 0 - f00002e_dnn_beta4 : Xiang-Ling : English\n        * 1 - f00002e : Xiang-Ling : English\n\n    - Male\n\n        * 0 - m00003e_beta : Matsuo-P : English\n\n- Mandarin\n    - Female\n\n        * 0 - f00002m : Xiang-Ling : Chinese (Mandarin)\n\n    - Male\n\n        * None at the moment\n\n## Credits\nThis source code was developed by Mathias Gatti ([@mathigatti](https://mathigatti.com)) if you use it please remember to cite me. For scientific publications you can use this DOI.\n\n`Gatti, M. (2020). mathigatti/midi2voice v1.0.0 (v1.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/ZENODO.3969003`\n\n[![DOI](https://zenodo.org/badge/140364503.svg)](https://zenodo.org/badge/latestdoi/140364503)\n\n## Support my work\n\nIf you want to help me to keep going developing and maintaining open-source projects you can contribute buying me some [ko-fi](https://ko-fi.com/mathigatti).\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathigatti%2Fmidi2voice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathigatti%2Fmidi2voice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathigatti%2Fmidi2voice/lists"}