Metadata-Version: 2.4
Name: libresvip
Version: 1.11.1
Summary: Universal Converter for Singing Voice Projects
Project-URL: repository, https://github.com/SoulMelody/LibreSVIP
Project-URL: documentation, https://soulmelody.github.io/LibreSVIP
Author-email: SoulMelody <yjxrtzyx@gmail.com>
License: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Android
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: File Formats
Classifier: Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.10
Requires-Dist: bidict<0.23.2,>=0.23.1
Requires-Dist: charset-normalizer<4.0.0,>=3.4.2
Requires-Dist: construct
Requires-Dist: construct-typing<1.0.0,>=0.6.2
Requires-Dist: drawsvg<3.0.0,>=2.4.0
Requires-Dist: importlib-resources<7.0.0,>=6.5.2; python_version < '3.11'
Requires-Dist: jinja2<4.0.0,>=3.1.6
Requires-Dist: jyutping
Requires-Dist: ko-pron>=1.3
Requires-Dist: loguru<1.0.0,>=0.7.3
Requires-Dist: mido-fix
Requires-Dist: more-itertools<11.0.0,>=10.7.0
Requires-Dist: packaging<25.1,>=25.0
Requires-Dist: platformdirs<5.0.0,>=4.3.8
Requires-Dist: portion<3.0.0,>=2.6.1
Requires-Dist: proto-plus<2.0.0,>=1.26.1
Requires-Dist: pydantic-extra-types<3.0.0,>=2.10.5
Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
Requires-Dist: pydantic<3.0.0,>=2.11.7
Requires-Dist: pymediainfo<7.0.2,>=7.0.1; sys_platform != 'emscripten'
Requires-Dist: pypinyin<1.0.0,>=0.54.0
Requires-Dist: pysubs2<2.0.0,>=1.8.0
Requires-Dist: pyyaml-ft<8.0.1,>=8.0.0; python_version >= '3.13'
Requires-Dist: pyyaml<7.0.0,>=6.0.2; python_version < '3.13'
Requires-Dist: repro-zipfile<1.0.0,>=0.4.0; python_version < '3.11'
Requires-Dist: retrie<1.0.0,>=0.3.1
Requires-Dist: rich<14.0.1,>=14.0.0
Requires-Dist: tatsu-lts>=5.13.1
Requires-Dist: typer-slim<1.0.0,>=0.16.0
Requires-Dist: wanakana-python
Requires-Dist: xsdata-pydantic<24.6,>=24.5
Requires-Dist: zhon<3.0.0,>=2.1.1
Provides-Extra: crypto
Requires-Dist: cffi>=1.17.1; (sys_platform != 'win32' or python_version <= '3.11') and extra == 'crypto'
Requires-Dist: pyzipper>=0.3.6; extra == 'crypto'
Provides-Extra: desktop
Requires-Dist: desktop-notifier>=6.1.1; (platform_python_implementation == 'CPython') and extra == 'desktop'
Requires-Dist: fonticon-materialdesignicons7>=7.2.96; extra == 'desktop'
Requires-Dist: httpx>=0.28.1; extra == 'desktop'
Requires-Dist: pyside6<6.9.2,>=6.9.1; extra == 'desktop'
Requires-Dist: universal-pathlib<1.0.0,>=0.2.6; extra == 'desktop'
Provides-Extra: lxml
Requires-Dist: lxml>=5.4.0; extra == 'lxml'
Provides-Extra: mobile
Requires-Dist: flet-permission-handler>=0.1.0; extra == 'mobile'
Requires-Dist: flet[cli,desktop]>=0.28.3; extra == 'mobile'
Requires-Dist: universal-pathlib<1.0.0,>=0.2.6; extra == 'mobile'
Provides-Extra: ruamel-yaml
Requires-Dist: ruamel-yaml>=0.18.14; extra == 'ruamel-yaml'
Provides-Extra: tui
Requires-Dist: textual-fspicker>=0.4.1; extra == 'tui'
Requires-Dist: universal-pathlib<1.0.0,>=0.2.6; extra == 'tui'
Provides-Extra: ujson
Requires-Dist: ujson>=5.10.0; extra == 'ujson'
Provides-Extra: upath
Requires-Dist: universal-pathlib<1.0.0,>=0.2.6; extra == 'upath'
Provides-Extra: webui
Requires-Dist: nicegui>=2.20.0; extra == 'webui'
Requires-Dist: universal-pathlib<1.0.0,>=0.2.6; extra == 'webui'
Provides-Extra: zstd
Requires-Dist: pyzstd<1.0.0,>=0.17.0; (platform_python_implementation == 'PyPy') and extra == 'zstd'
Requires-Dist: zstandard<0.23.1,>=0.23.0; (platform_python_implementation == 'CPython') and extra == 'zstd'
Description-Content-Type: text/markdown

# LibreSVIP

[![PyPi](https://img.shields.io/pypi/v/libresvip)](https://pypi.org/project/libresvip/)
[![Python Version](https://img.shields.io/pypi/pyversions/libresvip.svg)](https://pypi.org/project/libresvip/)
[![PyPI - Downloads](https://static.pepy.tech/badge/libresvip/month)](https://pypi.org/project/libresvip/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![License](https://img.shields.io/pypi/l/libresvip?color=blue)](https://opensource.org/licenses/MIT)
[![GitHub Build](https://img.shields.io/github/actions/workflow/status/SoulMelody/LibreSVIP/package.yml?label=packaging)](https://github.com/SoulMelody/LibreSVIP/actions/workflows/package.yml?query=workflow%3APackaging)
[![lite-badge](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://soulmelody.github.io/libresvip-pwa/lab/index.html)

LibreSVIP is a cross-platform and universal converter for many Singing Voice Synthesis (aka SVS) project formats.

## Installation

Download from github releases: [Releases](https://github.com/SoulMelody/LibreSVIP/releases)

Alternatively, you can install LibreSVIP with desktop support via pip (requires python 3.10+):

```bash
pip install libresvip[desktop]
```

## Translations

![zh-CN translation](https://img.shields.io/badge/dynamic/json?color=blue&label=zh-CN&style=flat&logo=crowdin&query=%24.progress%5B2%5D.data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-16219268-645830.json)
![ja translation](https://img.shields.io/badge/dynamic/json?color=blue&label=ja&style=flat&logo=crowdin&query=%24.progress%5B1%5D.data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-16219268-645830.json)
![de translation](https://img.shields.io/badge/dynamic/json?color=blue&label=de&style=flat&logo=crowdin&query=%24.progress%5B0%5D.data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-16219268-645830.json)

If you also want to add or contribute to a translation, check [LibreSVIP's page on Crowdin](https://crowdin.com/project/libresvip).

## References

This project is highly inspired by following projects:

- [OpenSVIP](https://github.com/yqzhishen/opensvip)
- [Utaformatix3](https://github.com/sdercolin/utaformatix3)

Other projects that are related to this project:

- [QNrbf](https://github.com/SineStriker/QNrbf)

The following article will give you a brief introduction about python libraries for text and binary parsing:

- [Parsing In Python: Tools And Libraries](https://tomassetti.me/parsing-in-python/)

## License

LibreSVIP is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
