|
Download README.md from monydochev/bgmtts: direct link, hf CLI and curl.
- Browser
- Download file 13.6 kB
-
https://huggingface.co/monydochev/bgmtts/resolve/main/README.md
- Command line
-
hf download hf://monydochev/bgmtts/README.md
-
curl -L -o README.md https://huggingface.co/monydochev/bgmtts/resolve/main/README.md
13.6 kB
| license: cc-by-nc-4.0 | |
| language: | |
| - bg | |
| pipeline_tag: text-to-speech | |
| library_name: onnx | |
| tags: | |
| - text-to-speech | |
| - tts | |
| - bulgarian | |
| - onnx | |
| - cpu | |
| # bgmtts — Bulgarian text-to-speech (two voices) | |
| A small Bulgarian text-to-speech model with a **woman** and a **man** voice. It runs on an ordinary CPU with | |
| onnxruntime (no GPU), reads numbers, dates, units and abbreviations, and puts the stress on the right syllable. | |
| **[Демо в браузъра / Try it in the browser](https://huggingface.co/spaces/monydochev/bgmtts-demo)** | |
| ## Примери / Samples | |
| The texts below are shown as the model reads them: after the normalization (numbers, dates, units and abbreviations written out) and with the stress mark ( ̀ ) the stress model put on every word. / Текстовете са показани така, както ги чете моделът: след нормализацията и с ударенията, които е сложил. | |
| **Възможности** | |
| > [жена] До̀бър ден! Това̀ е ма̀лкият модѐл, ко̀йто гово̀ри напра̀во в бра̀узъра, без съ̀рвър. [мъж] Тѐгли се веднъ̀ж, о̀коло педесѐт мегаба̀йта, и по̀сле рабо̀ти и о̀флайн. [жена] Почтѝ нѝщо тук не е напѝсано с ударѐние. [мъж] Ударѐнията ѝдват от рѐчника, а за ду̀мите, коѝто не са в нѐго, ги предска̀зва ма̀лка мрѐжа на само̀то устро̀йство. [жена] Кога̀то тря̀бва то̀чно определѐно ударѐние, то се пѝше в самѝя текст. Бо̀рис и Борѝс са разлѝчни хо̀ра. [мъж] Въ̀лна и вълна̀ съ̀що се пѝшат една̀кво, затова̀ по-сѝгурно е да се зададѐ ударѐнието. [жена] Чуждѝците мина̀ват гла̀дко. Тря̀бва да commit-на ко̀да, по̀сле ще го push-на и ще deploy-на но̀вата вѐрсия. [мъж] Имена̀ като̀ nvidia, Netflix, Microsoft, Google и OpenAI се чета̀т почтѝ ка̀кто ги ка̀зваме. [жена] Ако̀ нѐщо тря̀бва да оста̀не на англѝйски, се маркѝра: state of the art. [мъж] Съкращѐнията на латѝница се изгова̀рят бу̀ква по бу̀ква: ей ай, ей пи ай, джи пи ѐс, ю ес бѝ, ем пи три. [жена] На кѝрилица завѝси от ду̀мата — на̀то, герб и данс се чета̀т сля̀то, а бе де жѐ, е ге нѐ и о о нѐ се ка̀зват бу̀ква по бу̀ква. [мъж] Числа̀та, да̀тите и мѐрките ста̀ват ду̀ми: на седемна̀йсти окто̀мври две хѝляди два̀йсет и шѐста годѝна в четирина̀йсет часа̀ и трѝйсет билѐтът поскъ̀пна с пет процѐнта до педесѐт лѐва, а апартамѐнтът е два̀йсет и пет квадра̀тни мѐтра [жена] Вла̀кът вървѐше със сто и два̀йсет киломѐтра в час. Класѝрах се трѐти от два милио̀на уча̀стници. [мъж] В два̀йсет и пъ̀рви век хо̀рата са до̀ста разлѝчни. В глава̀ четвъ̀рта на рома̀на се гово̀ри за Хѐнри о̀сми, ко̀йто е живя̀л през деветна̀йсти век, то̀ест до̀ста отда̀вна. [жена] Интона̀цията слѐдва пунктуа̀цията, но все о̀ще не доста̀тъчно изразѝтелно. Наѝстина ли? [мъж] Да! И така̀ ната̀тък… | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/features.wav"></audio> | | |
| **Поздрав** | |
| > До̀бър ден! Това̀ е ма̀лкият модѐл, ко̀йто гово̀ри напра̀во в бра̀узъра, без съ̀рвър. Мо̀га да гово̀ря с жѐнски и с мъ̀жки глас. | |
| | Жена / Woman | Мъж / Man | | |
| |---|---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/hello_woman.wav"></audio> | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/hello_man.wav"></audio> | | |
| **Два гласа** | |
| > [жена] Здравѐйте, аз съм жѐнският глас. [мъж] А аз съм мъ̀жкият. Смѐняте ни с та̀говете в квадра̀тни ско̀би. | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/two_voices.wav"></audio> | | |
| **Кафене** | |
| > [жена] Добро̀ у̀тро! Какво̀ ще жела̀ете днес? [мъж] Едно̀ голя̀мо кафѐ с мля̀ко, мо̀ля. Ѝмате ли нѐщо сла̀дко? [жена] Ѝмаме пря̀сно изпѐчени кѝфли с шокола̀д. [мъж] Чудѐсно, взѐмам една̀. | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/cafe.wav"></audio> | | |
| **При лекаря** | |
| > [мъж] До̀бър ден, до̀кторе. От ня̀колко дни ме болѝ гъ̀рлото и ѝмам температу̀ра. [жена] Седнѐте, мо̀ля. Отворѐте уста̀ и кажѐте "а̀аа". Да, гъ̀рлото е зачервѐно. Ще ви изпѝша лека̀рство. | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/doctor.wav"></audio> | | |
| **Новини** | |
| > [жена] До̀бър вѐчер, това̀ са новинѝте. Днес в Со̀фия се провѐде срѐща на кмѐтовете от ця̀лата страна̀. [мъж] Обсъ̀дени бя̀ха ремо̀нтите на пъ̀тищата и но̀вите автобу̀сни лѝнии, коѝто ще тръ̀гнат от пъ̀рви декѐмври. [жена] А сега̀ — врѐмето. | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/news.wav"></audio> | | |
| **Приказка** | |
| > [мъж] Ѝмало едно̀ врѐме една̀ ма̀лка лисѝца, коя̀то живѐела в гора̀та край река̀та. Една̀ су̀трин тя срѐщнала ста̀рия мечо̀к. [жена] Добро̀ у̀тро, чѝчо Мѐчо! Накъдѐ си се запъ̀тил? [мъж] Отѝвам за мед, ма̀лката. Ѝскаш ли да до̀йдеш с мен? | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/tale.wav"></audio> | | |
| **Обява** | |
| > [мъж] Уважа̀еми пъ̀тници, вла̀кът за Пло̀вдив ще потѐгли от вто̀ри колово̀з след дѐсет мину̀ти. [жена] Мо̀ля, не оста̀вяйте бага̀жа си без надзо̀р. | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/announcement.wav"></audio> | | |
| **Телефон** | |
| > [жена] А̀ло, здравѐй! Къдѐ си? [мъж] В кола̀та съм, ще закъснѐя десетѝна мину̀ти. [жена] Ня̀ма проблѐм, ще те ча̀кам пред кѝното. [мъж] Добрѐ, до ско̀ро! | |
| | Два гласа / Two voices | | |
| |---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/phone.wav"></audio> | | |
| **Числа и дати** | |
| > Срѐщата е на петна̀йсти март две хѝляди два̀йсет и сѐдма годѝна от дѐсет и трѝйсет ча̀са в за̀ла двѐста и чѐтири. Вхо̀дът е два̀йсет и пет лѐва, а за студѐнти с ка̀рта — двана̀йсет лѐва | |
| | Жена / Woman | Мъж / Man | | |
| |---|---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/numbers_woman.wav"></audio> | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/numbers_man.wav"></audio> | | |
| **Рецепта** | |
| > За ба̀ницата ви тря̀бват корѝ, чѐтири яйца̀, ко̀фичка кѝсело мля̀ко и двѐста гра̀ма сѝрене. Разбѝйте яйца̀та с мля̀кото, натрошѐте сѝренето и редѐте корѝте в тава̀та. | |
| | Жена / Woman | Мъж / Man | | |
| |---|---| | |
| | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/recipe_woman.wav"></audio> | <audio controls src="https://huggingface.co/monydochev/bgmtts/resolve/main/samples/recipe_man.wav"></audio> | | |
| ## Install | |
| ```bash | |
| pip install "bgmtts @ https://huggingface.co/monydochev/bgmtts/resolve/main/bgmtts-0.1.0-py3-none-any.whl" | |
| ``` | |
| The model files (12 MB voice model + 18 MB stress model) are downloaded from this repository on first use and cached. | |
| ## Use | |
| Command line: | |
| ```bash | |
| bgmtts "Здравейте! Как сте днес?" -o hello.wav | |
| bgmtts "Добър ден." -o man.wav --voice man --speed 1.1 | |
| echo "Текст от файл или друга програма." | bgmtts -o out.wav | |
| ``` | |
| Python: | |
| ```python | |
| from bgmtts import TTS | |
| tts = TTS() # downloads the models once | |
| audio = tts.synth("Здравейте! Днес е 7 ноември.", voice="woman") # float32, 24 kHz, mono | |
| tts.save(audio, "hello.wav") | |
| print(tts.stress_text("Той вземал пари.")) # the text with the stress marks the model will read | |
| ``` | |
| - **Voices:** `voice="woman"` / `"жена"` or `voice="man"` / `"мъж"`. Inside the text, `[мъж]` and `[жена]` switch the | |
| voice from that point on: `"[жена] Здравей! [мъж] Здравей и на теб."` | |
| - **Speed:** `speed=1.0` is normal, `1.2` faster, `0.9` slower. | |
| - **Your own stress marks win:** put `+` before the stressed vowel (`муз+ика`) or a stress accent after it (`му́зика`). | |
| - **Stress model size:** `TTS(stress="small")` (18 MB, default), `"base"` (100 MB) or `"large"` (240 MB, a little more | |
| accurate on rare words); `stress=None` uses the built-in dictionary only. | |
| - **Offline:** download the repository once and pass `TTS(model_dir="path/to/folder")`. | |
| Speed: about 25-30x faster than real time on a laptop CPU (one sentence ≈ 0.1 s). | |
| ## Какво умее / What it does | |
| - Чете на книжовен български: числа („15 март 2027 г.“ → „петнайсти март две хиляди двайсет и седма година“), | |
| часове, пари, мерни единици, съкращения и абревиатури. | |
| - Ударения: голям речник на ударенията плюс невронен модел за ударения за многозначните и непознатите думи. | |
| - Латинските думи (имена на марки, приложения) се четат приблизително по български. | |
| - Изреченията се синтезират едно по едно, с естествена пауза след точка, въпрос и удивителна. | |
| ## Ограничения / Limitations | |
| - Only Bulgarian. Latin-script words are read with an approximate Bulgarian pronunciation. | |
| - Stress can still be wrong on rare words, names and homographs that need the wider context; mark them with `+`. | |
| - Two voices only; no voice cloning. | |
| ## License | |
| **CC BY-NC 4.0** — free for **non-commercial** use, with attribution. Commercial use is not permitted. | |
| This covers the models, the stress dictionary and the code in this repository. | |
| Please do not use the voices to impersonate real people or to create misleading content. | |
| ## Acknowledgements / Благодарности | |
| The models were trained on **[BRAIN++](https://brainplusplus.bg/)**, the Bulgarian AI Factory — a national and European | |
| AI Factory (EuroHPC) that brings together AI compute, expertise, training and support for companies and researchers. | |
| Моделите са обучени на **[BRAIN++](https://brainplusplus.bg/)**, българската AI фабрика — национална и европейска AI | |
| фабрика (EuroHPC), която събира на едно място изчислителна мощ за изкуствен интелект, експертиза, обучение и подкрепа | |
| за бизнеса и изследователите. | |
| - [BRAIN++ — Bulgarian AI Factory](https://brainplusplus.bg/) | |
| - [EuroHPC AI Factories](https://eurohpc-ju.europa.eu/ai-factories_en) | |