| Name | ruphon JSON |
| Version |
1.3
JSON |
| download |
| home_page | None |
| Summary | Russian phonemizer |
| upload_time | 2024-09-09 11:21:14 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | None |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# RUPhon
RUPhon - это библиотека для фонемизации русского текста, использующая передовые модели RUAccent-encoder.
## Особенности
RUPhon - библиотека, позволяющая фонемизировать текст с учетом ударений. Модель поддерживает два языка - английский и русский.
Фонемсет следующий:
```
k|l|s:|ʒ|t~ɕ|j|'ɐ|iː|fʲ:|ɹ|'ʉ|v|'ɵ|ə+r|d͡ʒ|ʊ|ɫ|ɪ|oː|jɵ|ɔː|ɚ|j:|dʲ:|ʔ|sʲ|ɛː|u|nʲ:|ʃ|d~zʲ|'je|t~s|ɑː|mʲ|ɵ|ɡʲ|jə|d:|jʊ|ɛ|k:|vʲ:|x|nʲ|n|jɪ|zʲ|ɐ|æː|n:|pʲ:|v:|r|l̩|t~ɕ:|'ju|xʲ|'jæ|'ɪ|ɕ|b|aː|o|kʲ:|'ə|ɕ:|dʲ|rʲ|d~ʐ|'ji|tʲ:|w|bʲ|p:|r:|ɝ|eː|ə|t|'ja|'ʊ|b:|mʲ:|'jʉ|'u|z|ju|t~sʲ|ɣ|z:|jæ|ð|je|ʐ|ʂ:|ɜː|ʐ:|ʑ:|lʲ|ɡ:|ɨ|ji|pʲ|ɒ|ɪː|zʲ:|ɔ|θ|ɫ:|fʲ|p|vʲ|i|t~ʂ|'i|'a|ŋ|ɜ|ʊ̯|ɪ̯|n̩|kʲ|'o|uː|f|jʉ|'ɛ|s+_|ɡ|'æ|ʉ|m|s|a|'e|æ|tʲ|h|ɪ+rʲ|m:|ɑ|e|'jɵ|d|sʲ:|ʌ|d~z|lʲ:|t~s+_|m̩|ʂ|ja|t~s:|ɝː|'ɨ|ʍ|t:|t͡ʃ|'jɪ|rʲ:
```
## Установка
```
pip install ruphon
```
или
```
pip install git+https://github.com/Den4ikAI/ruphon.git
```
## Основные функции
### Phonemizer.load(model_type, workdir, device)
Загружает модель фонемизатора.
- `model_type`: "small" или "big". small - 14 миллионов параметров, big - 28 миллионов
- `workdir`: директория для сохранения моделей (по умолчанию - директория библиотеки)
- `device`: "CPU" или "CUDA" (для использования GPU) (Требуется установить onnxruntime-gpu)
### phonemizer.phonemize(text, put_stress, stress_symbol)
Фонемизирует входной текст.
- `text`: входной текст для фонемизации
- `put_stress`: добавлять ли ударения (по умолчанию True)
- `stress_symbol`: символ для обозначения ударения (по умолчанию "'")
## Использование
```python
from ruphon import RUPhon
phonemizer = RUPhon()
phonemizer = phonemizer.load("small", workdir="./models", device="CPU")
input_text = "+я программ+ирую н+а python."
result = phonemizer.phonemize(input_text, put_stress=True, stress_symbol="'")
print(f"Input: {input_text}")
print(f"Phonemized: {result}")
```
## Использование с автоматической расстановкой ударений
```python
from ruphon import RUPhon
from ruaccent import RUAccent
phonemizer = RUPhon()
phonemizer = phonemizer.load("small", workdir="./models", device="CPU")
accentizer = RUAccent()
accentizer.load(omograph_model_size='turbo3', use_dictionary=True, tiny_mode=False)
input_text = "я программирую на python."
accented_text = accentizer.process_all(input_text)
print(f"Input: {input_text}")
print(f"Accented: {accented_text}")
result = phonemizer.phonemize(accented_text, put_stress=True, stress_symbol="'")
print(f"Phonemized: {result}")
```
## Донат
Вы можете поддержать проект деньгами. Это поможет быстрее разрабатывать более качественные новые версии.
CloudTips: https://pay.cloudtips.ru/p/b9d86686
Raw data
{
"_id": null,
"home_page": null,
"name": "ruphon",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "\"Denis Petrov, Ivan Shivalov\" <arduino4b@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/6a/89/9e72630ee1d3bdd8f92955c8292fd4a607efd47c4d1b64671308a0e600cb/ruphon-1.3.tar.gz",
"platform": null,
"description": "# RUPhon\n\nRUPhon - \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0444\u043e\u043d\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 RUAccent-encoder.\n\n## \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\nRUPhon - \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0444\u043e\u043d\u0435\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u0439. \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0430 \u044f\u0437\u044b\u043a\u0430 - \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0438 \u0440\u0443\u0441\u0441\u043a\u0438\u0439. \n\n\u0424\u043e\u043d\u0435\u043c\u0441\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:\n\n```\nk|l|s:|\u0292|t~\u0255|j|'\u0250|i\u02d0|f\u02b2:|\u0279|'\u0289|v|'\u0275|\u0259+r|d\u0361\u0292|\u028a|\u026b|\u026a|o\u02d0|j\u0275|\u0254\u02d0|\u025a|j:|d\u02b2:|\u0294|s\u02b2|\u025b\u02d0|u|n\u02b2:|\u0283|d~z\u02b2|'je|t~s|\u0251\u02d0|m\u02b2|\u0275|\u0261\u02b2|j\u0259|d:|j\u028a|\u025b|k:|v\u02b2:|x|n\u02b2|n|j\u026a|z\u02b2|\u0250|\u00e6\u02d0|n:|p\u02b2:|v:|r|l\u0329|t~\u0255:|'ju|x\u02b2|'j\u00e6|'\u026a|\u0255|b|a\u02d0|o|k\u02b2:|'\u0259|\u0255:|d\u02b2|r\u02b2|d~\u0290|'ji|t\u02b2:|w|b\u02b2|p:|r:|\u025d|e\u02d0|\u0259|t|'ja|'\u028a|b:|m\u02b2:|'j\u0289|'u|z|ju|t~s\u02b2|\u0263|z:|j\u00e6|\u00f0|je|\u0290|\u0282:|\u025c\u02d0|\u0290:|\u0291:|l\u02b2|\u0261:|\u0268|ji|p\u02b2|\u0252|\u026a\u02d0|z\u02b2:|\u0254|\u03b8|\u026b:|f\u02b2|p|v\u02b2|i|t~\u0282|'i|'a|\u014b|\u025c|\u028a\u032f|\u026a\u032f|n\u0329|k\u02b2|'o|u\u02d0|f|j\u0289|'\u025b|s+_|\u0261|'\u00e6|\u0289|m|s|a|'e|\u00e6|t\u02b2|h|\u026a+r\u02b2|m:|\u0251|e|'j\u0275|d|s\u02b2:|\u028c|d~z|l\u02b2:|t~s+_|m\u0329|\u0282|ja|t~s:|\u025d\u02d0|'\u0268|\u028d|t:|t\u0361\u0283|'j\u026a|r\u02b2:\n```\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```\npip install ruphon\n```\n\n\u0438\u043b\u0438\n\n```\npip install git+https://github.com/Den4ikAI/ruphon.git\n```\n\n## \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\n\n### Phonemizer.load(model_type, workdir, device)\n\n\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0444\u043e\u043d\u0435\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430.\n\n- `model_type`: \"small\" \u0438\u043b\u0438 \"big\". small - 14 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, big - 28 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432\n- `workdir`: \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438)\n- `device`: \"CPU\" \u0438\u043b\u0438 \"CUDA\" (\u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f GPU) (\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c onnxruntime-gpu)\n\n### phonemizer.phonemize(text, put_stress, stress_symbol)\n\n\u0424\u043e\u043d\u0435\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0435\u043a\u0441\u0442.\n\n- `text`: \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0444\u043e\u043d\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u0438\n- `put_stress`: \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u0438 \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e True)\n- `stress_symbol`: \u0441\u0438\u043c\u0432\u043e\u043b \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \"'\")\n\n\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nfrom ruphon import RUPhon\n\nphonemizer = RUPhon()\n\nphonemizer = phonemizer.load(\"small\", workdir=\"./models\", device=\"CPU\")\n\ninput_text = \"+\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c+\u0438\u0440\u0443\u044e \u043d+\u0430 python.\"\nresult = phonemizer.phonemize(input_text, put_stress=True, stress_symbol=\"'\")\n\nprint(f\"Input: {input_text}\")\nprint(f\"Phonemized: {result}\")\n```\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u0439\n\n```python\nfrom ruphon import RUPhon\nfrom ruaccent import RUAccent\n\nphonemizer = RUPhon()\nphonemizer = phonemizer.load(\"small\", workdir=\"./models\", device=\"CPU\")\n\naccentizer = RUAccent()\naccentizer.load(omograph_model_size='turbo3', use_dictionary=True, tiny_mode=False)\n\ninput_text = \"\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u044e \u043d\u0430 python.\"\n\naccented_text = accentizer.process_all(input_text)\n\nprint(f\"Input: {input_text}\")\nprint(f\"Accented: {accented_text}\")\n\nresult = phonemizer.phonemize(accented_text, put_stress=True, stress_symbol=\"'\")\n\nprint(f\"Phonemized: {result}\")\n```\n\n## \u0414\u043e\u043d\u0430\u0442\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u0435\u043d\u044c\u0433\u0430\u043c\u0438. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438. \nCloudTips: https://pay.cloudtips.ru/p/b9d86686",
"bugtrack_url": null,
"license": null,
"summary": "Russian phonemizer",
"version": "1.3",
"project_urls": {
"Home": "https://github.com/Den4ikAI/ruphon"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5750cfb682e46e2a482b810d5f1bb05e7065a423a34dcaeb783b5bc248f4ba8f",
"md5": "8444532d589c10b3eee5a301f37495c9",
"sha256": "11aec5e4423aff92154ea66c4644ee1e98880bad1c38f3d4b324d525cca164d1"
},
"downloads": -1,
"filename": "ruphon-1.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8444532d589c10b3eee5a301f37495c9",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 18720,
"upload_time": "2024-09-09T11:21:12",
"upload_time_iso_8601": "2024-09-09T11:21:12.381742Z",
"url": "https://files.pythonhosted.org/packages/57/50/cfb682e46e2a482b810d5f1bb05e7065a423a34dcaeb783b5bc248f4ba8f/ruphon-1.3-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6a899e72630ee1d3bdd8f92955c8292fd4a607efd47c4d1b64671308a0e600cb",
"md5": "93ae8800ad23aa55c4ea0c6d9134a11f",
"sha256": "ca8cf4c1d166cf85a08d03343d703ece25cf29bcfeae79785faebbf88f95db1d"
},
"downloads": -1,
"filename": "ruphon-1.3.tar.gz",
"has_sig": false,
"md5_digest": "93ae8800ad23aa55c4ea0c6d9134a11f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14138,
"upload_time": "2024-09-09T11:21:14",
"upload_time_iso_8601": "2024-09-09T11:21:14.951905Z",
"url": "https://files.pythonhosted.org/packages/6a/89/9e72630ee1d3bdd8f92955c8292fd4a607efd47c4d1b64671308a0e600cb/ruphon-1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 11:21:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Den4ikAI",
"github_project": "ruphon",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ruphon"
}