Metadata-Version: 2.4
Name: libresvip
Version: 2.2.0
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-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 :: MacOS :: MacOS X
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 :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: File Formats
Classifier: Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
Classifier: Typing :: Typed
Requires-Python: <3.15,>=3.10
Requires-Dist: aristaproto<0.2.0,>=0.1.4
Requires-Dist: bidict<0.23.2,>=0.23.1
Requires-Dist: charset-normalizer<4.0.0,>=3.4.4
Requires-Dist: construct-typing<1.0.0,>=0.7.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: more-itertools<11.0.0,>=10.8.0
Requires-Dist: packaging<26.1,>=26.0
Requires-Dist: platformdirs<5.0.0,>=4.5.1
Requires-Dist: portion<3.0.0,>=2.6.1
Requires-Dist: pydantic-extra-types<3.0.0,>=2.11.0
Requires-Dist: pydantic-settings<3.0.0,>=2.12.0
Requires-Dist: pydantic<3.0.0,>=2.12.5
Requires-Dist: pymediainfo<=7.0.1; sys_platform != 'emscripten'
Requires-Dist: pypinyin<1.0.0,>=0.55.0
Requires-Dist: pysubs2<2.0.0,>=1.8.0
Requires-Dist: pyyaml-ft<8.0.1,>=8.0.0; python_version == '3.13' and sys_platform != 'emscripten'
Requires-Dist: pyyaml<7.0.0,>=6.0.3; python_version != '3.13' or sys_platform == 'emscripten'
Requires-Dist: retrie<1.0.0,>=0.3.1
Requires-Dist: ruamel-yaml<=0.20.0,>=0.19.1
Requires-Dist: soundfile; sys_platform == 'emscripten'
Requires-Dist: svg-py<2.0.0,>=1.10.0
Requires-Dist: tatsu-lts<6.0.0,>=5.16.0
Requires-Dist: universal-pathlib<1.0.0,>=0.3.9
Requires-Dist: wanakana-python
Requires-Dist: xsdata-pydantic<24.6,>=24.5
Requires-Dist: zhon<3.0.0,>=2.1.1
Provides-Extra: cli
Requires-Dist: rich<14.3.3,>=14.3.2; extra == 'cli'
Requires-Dist: typer-slim<1.0.0,>=0.21.1; extra == 'cli'
Requires-Dist: winloop>=0.5.0; (sys_platform == 'win32') and extra == 'cli'
Provides-Extra: crypto
Requires-Dist: cffi>=2.0.0; (platform_python_implementation != 'PyPy' and (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.2.0; extra == 'desktop'
Requires-Dist: httpx>=0.28.1; extra == 'desktop'
Requires-Dist: pyside6-essentials<6.11.0,>=6.10.2; extra == 'desktop'
Requires-Dist: qasync>=0.28.0; extra == 'desktop'
Requires-Dist: ttkbootstrap-icons-mat>=1.0.0; extra == 'desktop'
Provides-Extra: lxml
Requires-Dist: lxml>=6.0.2; extra == 'lxml'
Provides-Extra: mobile
Requires-Dist: flet-permission-handler<0.90.0,>=0.80.5; extra == 'mobile'
Requires-Dist: flet[cli,desktop]<0.90.0,>=0.80.5; extra == 'mobile'
Requires-Dist: fontconfig-py>=1.0.1; (sys_platform == 'darwin' or sys_platform == 'linux') and extra == 'mobile'
Provides-Extra: tui
Requires-Dist: textual-fspicker>=0.6.0; extra == 'tui'
Provides-Extra: ujson
Requires-Dist: ujson>=5.11.0; extra == 'ujson'
Provides-Extra: webui
Requires-Dist: nicegui>=3.7.1; extra == 'webui'
Provides-Extra: yaml12
Requires-Dist: py-yaml12<0.2.0,>=0.1.0; ((sys_platform == 'win32' or sys_platform == 'darwin' or sys_platform == 'linux') and platform_python_implementation == 'PyPy') and extra == 'yaml12'
Requires-Dist: ruamel-yaml-clib<0.3.0,>=0.2.15; (sys_platform != 'win32' and sys_platform != 'darwin' and sys_platform != 'linux') and extra == 'yaml12'
Requires-Dist: ryaml<0.6.0,>=0.5.1; ((sys_platform == 'win32' or sys_platform == 'darwin' or sys_platform == 'linux') and platform_python_implementation != 'PyPy') and extra == 'yaml12'
Provides-Extra: zstd
Requires-Dist: backports-zstd<1.3.1,>=1.3.0; ((sys_platform == 'win32' or sys_platform == 'darwin' or sys_platform == 'linux') and (platform_python_implementation == 'CPython' or platform_python_implementation == 'PyPy') and python_version < '3.14') and extra == 'zstd'
Requires-Dist: zstandard<0.25.1,>=0.25.0; ((sys_platform != 'win32' and sys_platform != 'darwin' and sys_platform != 'linux') and platform_python_implementation == 'CPython' and python_version < '3.14') 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 pyrefly](https://img.shields.io/endpoint?url=https://pyrefly.org/badge.json)](https://github.com/facebook/pyrefly/)
[![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://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://soulmelody.github.io/libresvip-pwa/)

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).
