Перейти до вмісту

Огляд провайдерів TTS

Чому TTS змінює підхід до вивчення шахів

Section titled “Чому TTS змінює підхід до вивчення шахів”

Коли ви переглядаєте анотовану партію, ваші очі виконують подвійну роботу. Ви намагаєтеся одночасно стежити за фігурами на дошці і читати коментарі. Ваш погляд стрибає між дошкою та панеллю анотацій, і щоразу ви на мить втрачаєте позицію. Доводиться знову знаходити фігури, простежувати варіанти, відтворювати картину в голові.

Синтез мовлення повністю вирішує цю проблему.

З увімкненим TTS ви перегортаєте партію, а анотації озвучуються для вас. Ваші очі залишаються на дошці. Ви бачите, як кінь стає на f3, а голос пояснює, чому це сильний розвиваючий хід. Ви спостерігаєте, як змінюється пішакова структура, а коментар розкриває стратегічну ідею. Дошка та слова надходять одночасно — так, ніби тренер сидить навпроти вас і пояснює.

Це особливо ефективно для:

  • Вивчення дебютів — слухайте ідеї кожного ходу, спостерігаючи за розвитком позиції
  • Аналізу партій — перегортайте власні анотовані партії та засвоюйте уроки природним чином
  • Тренування ендшпілю — тримайте фокус на ключових полях, поки коментар вас спрямовує
  • Мовного занурення — вивчайте шахи французькою, німецькою, іспанською, російською, японською, китайською або корейською з правильним перекладом усіх шахових термінів. Чуйте «Cavalier f3, echec» замість «Knight f3, check». Вивчайте гру мовою, якою ви думаєте.
  • Доступності — для гравців, яким легше слухати, ніж читати, або які хочуть займатися далеко від робочого столу

Спробувавши раз, ви відчуєте, що повернутися до беззвучних анотацій — це як дивитися фільм без звуку.

En Parlant~ постачається з п’ятьма провайдерами TTS — від хмарних API зі студійною якістю голосу до повністю локальних рішень, що не потребують інтернету. Для початку достатньо одного. Нижче вони перераховані від найкращої до найгіршої якості голосу.

Найкраща доступна якість голосу. ElevenLabs створює виразне, людиноподібне мовлення з справжнім характером — деякі голоси звучать як диктори аудіокниг, інші — як телеведучі. Десятки унікальних голосів на вибір. Підтримує 34+ мови, зокрема відмінну вимову CJK (японська, китайська, корейська), а також арабську, гінді та всі основні європейські мови.

Безкоштовний план дає 10 000 символів на місяць (достатньо для 2–5 анотованих партій). Платні плани починаються від $5/місяць за 30 000 символів. Налаштування просте: створіть обліковий запис, скопіюйте API-ключ, вставте його в En Parlant~.

Потрібен інтернет. Найкращий вибір для цінителів якості голосу.

Посібник з налаштування ElevenLabs

Найкращий баланс якості, мовної підтримки та ціни. Нейронні голоси WaveNet від Google звучать природно та чітко на 30+ мовах — включно з CJK, арабською, гінді, бенгальською, філіппінською, в’єтнамською та всіма основними європейськими мовами. Безкоштовний рівень щедрий — один мільйон символів на місяць покриває сотні анотованих партій.

Налаштування займає близько 5 хвилин: створіть обліковий запис Google Cloud, увімкніть Text-to-Speech API, згенеруйте API-ключ. Жодних витрат, поки не перевищите безкоштовний ліміт (що дуже важко зробити з шаховими анотаціями).

Потрібен інтернет. Найкращий вибір для більшості користувачів.

Посібник з налаштування Google Cloud

Високоякісний локальний ШІ, що працює повністю на вашому комп’ютері. Використовує легку нейронну модель ~25 МБ з 8 виразними голосами (4 чоловічі, 4 жіночі). Якість напрочуд хороша — природна інтонація, чітка вимова, справжня виразність.

Компроміс — вимоги до обладнання: KittenTTS використовує PyTorch для інференсу на CPU, тому потрібен сучасний багатоядерний процесор. На 8-ядерній машині звучить чудово; на старшому ноутбуці можливі затримки. Наразі підтримується лише англійська.

При першому озвученні кожної анотації є невелика затримка на генерацію (1–2 секунди на швидкому CPU, довше на повільнішому обладнанні). Після цього аудіо кешується в пам’яті та відтворюється миттєво — перехід вперед і назад по ходах, які ви вже чули, відбувається без жодних затримок. Ви також можете попередньо закешувати всю партію у фоновому режимі через налаштування, щоб кожна анотація була готова до початку вивчення.

Інтернет не потрібен. API-ключі не потрібні. Найкраща локальна якість.

Посібник з налаштування KittenTTS

Сервер TTS з відкритим кодом, який працює на вашому комп’ютері через Docker. Нічого не залишає ваш комп’ютер. Включає кілька TTS-рушіїв (Larynx, Festival, eSpeak, Coqui-TTS), що дає 75+ голосів лише для англійської.

Компроміс — якість голосу: це старіші нейронні та правилові рушії, тому звучання більш роботизоване, ніж у ElevenLabs або Google. Найкраще працює з європейськими мовами (англійська, німецька, французька, іспанська, російська, нідерландська, шведська, італійська та інші) — CJK не підтримується. Чесно кажучи, якщо ви збираєтеся докладати зусиль для налаштування локальної моделі, KittenTTS забезпечить кращу якість з меншими клопотами. Якщо не буде значного попиту на OpenTTS, ми, ймовірно, припинимо його підтримку в майбутньому релізі.

Інтернет не потрібен. API-ключі не потрібні. Найкращий вибір для максимальної приватності з великою кількістю голосів.

Посібник з налаштування OpenTTS

Вбудований синтез мовлення вашої операційної системи. Нічого не потрібно встановлювати — жодних API-ключів, жодних серверів. Оберіть і починайте. Якість голосу базова — ви почуєте характерний роботизований тон системного TTS — але він працює миттєво без жодного налаштування.

На Linux це зазвичай eSpeak або speech-dispatcher; на macOS — системний голос; на Windows — SAPI. Підтримка мов повністю залежить від того, які голосові пакети встановлені у вашій операційній системі.

Інтернет не потрібен. Найкращий вибір для швидкого тестування.

Посібник з налаштування системного TTS

Порівняння провайдерів

Section titled “Порівняння провайдерів”
ПровайдерТипЯкістьНалаштуванняМови
ElevenLabsХмарний APIВинятковаAPI-ключ34+ (вкл. CJK)
Google CloudХмарний APIДуже добра (WaveNet)API-ключ30+ (вкл. CJK)
KittenTTSЛокальний нейронний ШІДобраPython + venvЛише англійська
OpenTTSЛокальний DockerЗадовільнаDockerЛише європейські
Системний (вбудований ОС)Вбудований в ОСБазоваНе потрібнеЗалежить від ОС

Примітка щодо обладнання: Локальні провайдери (KittenTTS та OpenTTS) виконують нейронний інференс на вашому CPU. Їм потрібен сучасний багатоядерний процесор (рекомендується 8+ ядер) для генерації мовлення без помітних затримок. Уявіть це як запуск ще одного шахового рушія на вашому комп’ютері. Якщо ваш комп’ютер старший або малопотужний, використовуйте один із хмарних провайдерів.

Почніть з ElevenLabs, якщо хочете найбагатшу якість голосу — безкоштовного плану достатньо, щоб спробувати. Для найкращого балансу якості та безкоштовного використання Google Cloud покриває сотні партій на місяць. Для високоякісного локального TTS без залежності від хмари KittenTTS — відмінний вибір за наявності сучасного процесора. Для тестування без жодних налаштувань Системний TTS працює миттєво. Для максимальної приватності з великою кількістю голосів OpenTTS запускає все локально через Docker.

Усі налаштування TTS знаходяться в Налаштування > Звук:

НалаштуванняОпис
Text-to-SpeechГоловний перемикач увімк./вимк. для всіх функцій TTS
Auto-Narrate on MoveАвтоматично озвучувати анотації при перегортанні ходів
TTS ProviderПеремикання між п’ятьма провайдерами
TTS VoiceВибір голосу для конкретного провайдера
TTS LanguageМова озвучення — шахові терміни перекладаються автоматично
TTS VolumeГучність озвучення
TTS SpeedШвидкість відтворення (від 0.5x до 2x) — регулюється без повторної генерації аудіо
ElevenLabs API KeyВаш API-ключ ElevenLabs (відображається лише при використанні ElevenLabs)
Google Cloud API KeyВаш API-ключ Google Cloud (відображається лише при використанні Google)
KittenTTS CPU ThreadsПотоки CPU для інференсу (0 = авто / використовувати всі ядра)
TTS Audio CacheОчистити кешоване аудіо для примусової повторної генерації

Озвучення TTS підтримує багато мов з повністю перекладеним шаховим словником. Ось кілька прикладів:

МоваШаховий приклад
EnglishKnight f3, check. A strong developing move.
FrancaisCavalier f3, echec. Un coup de developpement fort.
EspanolCaballo f3, jaque. Un fuerte movimiento.
DeutschSpringer f3, Schach. Ein starker Entwicklungszug.
日本語ナイト f3、チェック。強い展開の手。
РусскийКонь f3, шах. Сильный развивающий ход.
中文马 f3,将军。一步控制中心的强力出子。
한국어나이트 f3, 체크. 중앙을 지배하는 강력한 전개 수.

Кожен шаховий термін — назви фігур, «шах», «мат», «рокіровка», «бере», анотації якості ходу на кшталт «Блискучий хід» та «Зівок» — вимовляється обраною мовою. Коментарі у ваших PGN-файлах озвучуються так, як написані, тому анотуйте партії тією мовою, яку хочете чути.

Шахово-орієнтована обробка тексту

Section titled “Шахово-орієнтована обробка тексту”

TTS-рушій не просто зачитує необроблений текст — він розуміє шахову нотацію. Перед озвученням будь-якого тексту відбувається попередня обробка, яка перетворює PGN-нотацію на природне мовлення:

Записано в PGNОзвучується
Nf3”Knight f3”
Bxe6+”Bishop takes e6, check”
O-O-O”castles queenside”
e8=Q#”e8 promotes to Queen, checkmate”
Rae1”Rook a e1” (уточнення)
5.Qxd8+ (у коментарях)“5, Queen takes d8, check”
en prise”on preez” (французька вимова)
Ra8 is hanging”Rook on a8 is hanging”
R vs R”Rook versus Rook”
6...Bf5 (крапки номера ходу)“6, Bishop f5” (природна пауза, без «крапка»)

Коментарі очищаються перед озвученням: теги [%eval], [%cal], [%csl] видаляються. Початкові слова якості, що дублюють символ NAG, прибираються (тому ?? {BLUNDER. The rook hangs} не заїкається «Blunder. Blunder.»).

Кожне озвучення кешується в пам’яті після першої генерації. Перехід вперед і назад по партії відтворюється миттєво з кешу — без API-запитів, без затримок на повторну генерацію. Ви також можете попередньо закешувати все дерево партії у фоновому режимі, щоб під час перегляду не було жодних пауз.

Ключ кешу формується як provider:voiceId:lang:text, тому зміна голосу або провайдера створює окремі записи в кеші. Зміна швидкості відтворення не інвалідує кеш — швидкість застосовується на стороні клієнта до аудіоелемента.

Кнопка Clear Audio Cache у налаштуваннях дозволяє примусово перегенерувати аудіо після редагування анотацій.

Поради для найкращого досвіду

Section titled “Поради для найкращого досвіду”
  • Використовуйте автоозвучення. Увімкніть «Auto-Narrate on Move» і просто використовуйте клавіші зі стрілками для перегортання партій. Коментарі надходять природно під час переходу, ніби тренер стоїть за вашим плечем.

  • Анотуйте власні партії. TTS особливо розкривається, коли ви слухаєте коментарі до ваших партій. Анотуйте свої партії, потім переглядайте їх з озвученням. Почути «Захоплення пішака виглядає спокусливо, але весь ваш королівський фланг ще спить», дивлячись на позицію, — це зовсім інше враження, ніж просто прочитати це.

  • Спробуйте різні швидкості. Деякі гравці віддають перевагу 1x для ретельного вивчення, інші — 1.3x для швидшого перегляду. Повзунок швидкості регулює відтворення в реальному часі без використання додаткових символів API.

  • Використовуйте іконку динаміка. Кожен коментар у списку ходів має маленьку іконку динаміка. Натисніть на неї, щоб прослухати лише цю одну анотацію.

  • Змінюйте мови для вивчення шахової лексики. Якщо ви вивчаєте шахи другою мовою, встановіть мову TTS відповідно. Ви природно засвоїте терміни на кшталт «Cavalier» (кінь), «echec» (шах) та «mat» (мат) просто слухаючи.

Написання анотацій, зручних для TTS

Section titled “Написання анотацій, зручних для TTS”

Ці рекомендації забезпечать найкраще озвучення ваших PGN-анотацій.

Використовуйте стандартну SAN-нотацію. Препроцесор розгортає її автоматично:

  • "After 7.Nf3, White controls e5" стає “After 7, Knight f3, White controls e5”
  • "The Bg5 pins the knight" стає “The Bishop g5 pins the knight”

Символ NAG (!, ??, !? тощо) автоматично генерує озвучені слова якості. Не дублюйте їх у коментарі:

  • Погано: ?? {BLUNDER. A terrible move...} — TTS скаже “Blunder. Blunder. A terrible move”
  • Добре: ?? {A terrible move...} — TTS скаже “Blunder. A terrible move”

Стандартна PGN-нотація працює: 6...Bf5. Препроцесор перетворює крапки на коми для природних пауз замість «крапка крапка крапка».

Крапки створюють природні TTS-паузи. Використовуйте їх між окремими ідеями:

{Doubled isolated e-pawns. The f-file is ripped open. The position is strategically won.}

Теги [%cal ...] та [%csl ...] автоматично видаляються з аудіо. Вільно використовуйте їх для візуальних анотацій — на озвучення вони не впливають.

Примітка щодо поширення для тих, хто створює на основі En Parlant~:

  • ElevenLabs — ви зберігаєте всі права на згенероване аудіо (Умови використання ElevenLabs, розділ c(ii)). Можете вільно поширювати його.
  • Google Cloud — ви зберігаєте всі права інтелектуальної власності на згенероване аудіо. Без обмежень.
  • KittenTTS, OpenTTS, Системний TTS — без обмежень на поширення згенерованого аудіо.

En Croissant — це інструмент для вивчення шахів з відкритим кодом, створений Francisco Salgueiro. Francisco створив щось по-справжньому особливе — безкоштовну, потужну, спільнотну платформу для вивчення шахів — і випустив її під ліцензією GPL-3.0, щоб будь-хто міг нею користуватися, вдосконалювати та поширювати. Ця функція TTS існує завдяки цій щедрості. Ми вдячні за створений ним фундамент і пишаємося тим, що робимо свій внесок.

TTS-плагін розроблений Darrell у Red Shed за допомогою Claude Code. П’ять провайдерів, багатомовна підтримка, перекладений шаховий словник багатьма мовами, локальний ШІ-інференс, управління залежностями — створено з вихідного коду, протестовано вручну та надано з турботою.

У цьому краса відкритого коду. Хтось створює щось чудове. Хтось інший доповнює. Виграють усі.

Нам дуже цікаво почути, як TTS працює для вас. Коментарі, пропозиції та відгуки завжди вітаються.

  • Хочете мову, яку ми ще не підтримуємо? Повідомте нас — ми можемо швидко додати нові мови.
  • Знайшли помилку? Розкажіть нам, і ми швидко її виправимо.
  • Маєте ідею щодо іншого TTS-провайдера? Ми з радістю додамо його.
  • Просто хочете сказати, що все працює? Це також приємно чути.

Створіть issue на GitHub або зверніться напряму за адресою darrell@redshed.ai.