L
i
nux.org.ua
Головна
Форум
Довідка
Правила
Пошук
Увійти
Реєстрація
Linux.org.ua
»
Побутові проблеми і їх вирішення з лінуксом
»
Мультимедіа і лінукс
»
Генератор мови з українського тексту
« попередня гілка
наступна гілка »
Відповісти
Друк
Сторінки:
1
Автор
Гілка: Генератор мови з українського тексту (Прочитано 2988 раз)
gen
Новачок
дописів: 4
Карма: +2/-0
Генератор мови з українського тексту
«
:
2023-09-12 16:10:26 »
Цитата
Маю звичку робити аудіофайли з книг та статей, які хочу прочитати.
Для англійської - flite та espeak видають в більшості випадків прийнятну якість.
З українською складніше, україномовні моделі просто пропускають англійські слова та вирази з спеціальними символами.
Найкраще, що я зустрів - це вбудована в Андроїд TTS система.
Її можна використати на Андроїд-телефоні, наприклад, через
termux-tts-speak -l uk "текст"
.
Наприклад, вставте у файл текст зі сторінки
https://go-tour-ua-translation.lm.r.appspot.com/welcome/1
і виконайте
termux-tts-speak -l uk "$(<welcome.txt)"
і почуйте якісну озвучку, яка доволі чітко позначає вирази англійською і спецсимволи.
Нажаль, ця команда зараз не дає можливості зберегти аудіо у файл, та й потребує пристрій на Android.
Я трохи пошукав, як влаштовано цей функціонал Андроїда, і прийшов до думки, що він базується на Pico TTS. Це вільне ПЗ, але на лінуксі я не зміг досягнути якісних результатів для українських текстів.
Чи досягав хто-небудь більших успіхів у цьому?
Записаний
yurchor
Видавець
дописів: 3628
Карма: +2/-0
Grateful for our Iron Lung
Re: Генератор мови з українського тексту
«
Відповідей #1 :
2023-09-22 18:54:55 »
Цитата
Для espeak-ng працює суміш, але голос якийсь трохи того... Натренований машинним навчанням і трохи неприродний.
https://odo.lv/Espeak
Сумніваюся, що це можна витримувати довго.
У мережі повно шматків коду, які користуються API хмари Google для отримання звукових файлів, але їхню працездатність та прийнятність для висунутих вимог я не перевіряв.
Єдиний досвід був із озвучуванням дитячих ігор — просто кидав шматки тексту до рушія і перехоплював через Audacity, де обробляв і нарізав. Втім, це теж не зовсім те.
Записаний
Denounce the demagogues
King diamonds to discard
Deploy the dialogue
Your word against the law
gen
Новачок
дописів: 4
Карма: +2/-0
Re: Генератор мови з українського тексту
«
Відповідей #2 :
2023-10-06 02:48:10 »
Цитата
Дуже доречна замітка від адміна про piper-tts:
https://linux.org.ua/index.php?topic=12013.msg204752;topicseen#new
Я сьогодні натрапив на іншу високоякісну TTS систему з підтримкою української:
https://github.com/MycroftAI/mimic3
pip3 install mycroft-mimic3-tts[all]
echo "добрий вечір" | mimic3 --voice uk | ffplay -autoexit -
автоматично скачує потрібні моделі, стабільно працює, краще за
https://github.com/mozilla/TTS
та
https://github.com/coqui-ai/TTS
єдине, я нашвидкоруч поправив код, що валився з дивною помилкою, явно не так, як "треба":
$ diff -Nurd /home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py{.orig,}
--- /home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py.orig 2023-10-06 00:41:13.121708584 +0100
+++ /home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py 2023-10-05 23:51:46.733840057 +0100
@@ -433,6 +433,7 @@
def _create_inference_session(self, providers, provider_options, disabled_optimizers=None):
available_providers = C.get_available_providers()
+ available_providers = ["CPUExecutionProvider"]
# Tensorrt can fall back to CUDA. All others fall back to CPU.
if "TensorrtExecutionProvider" in available_providers:
Traceback (most recent call last):
File "/home/tts/.local/bin/mimic3", line 33, in <module>
sys.exit(load_entry_point('mycroft-mimic3-tts==0.2.4', 'console_scripts', 'mimic3')())
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/__main__.py", line 129, in main
process_lines(state)
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/__main__.py", line 450, in process_lines
process_line(line, state, line_id=line_id, line_voice=line_voice)
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/__main__.py", line 379, in process_line
state.tts.speak_text(line)
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/tts.py", line 368, in speak_text
voice = self._get_or_load_voice(self.voice)
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/tts.py", line 595, in _get_or_load_voice
voice = Mimic3Voice.load_from_directory(
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/voice.py", line 283, in load_from_directory
onnx_model = Mimic3Voice._load_model(
File "/home/tts/.local/lib/python3.10/site-packages/mimic3_tts/voice.py", line 403, in _load_model
onnx_model = onnxruntime.InferenceSession(
File "/home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 432, in __init__
raise e
File "/home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 419, in __init__
self._create_inference_session(providers, provider_options, disabled_optimizers)
File "/home/tts/.local/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 451, in _create_inference_session
raise ValueError(
ValueError: This ORT build has ['AzureExecutionProvider', 'CPUExecutionProvider'] enabled. Since ORT 1.9, you are required to explicitly set the providers parameter when instantiating InferenceSession. For example
, onnxruntime.InferenceSession(..., providers=['AzureExecutionProvider', 'CPUExecutionProvider'], ...)
Записаний
Відповісти
Друк
Сторінки:
1
« попередня гілка
наступна гілка »
Linux.org.ua
»
Побутові проблеми і їх вирішення з лінуксом
»
Мультимедіа і лінукс
»
Генератор мови з українського тексту