ruphon


Nameruphon JSON
Version 1.3 PyPI version JSON
download
home_pageNone
SummaryRussian phonemizer
upload_time2024-09-09 11:21:14
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
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"
}
        
Elapsed time: 0.33866s