Озвучити текст уголос
Або вставте текст субтитрів
Перший запуск завантажує голосову модель і фонемізатор — разом близько 98 МБ, віддається цим сайтом і після цього кешується браузером. Субтитри чи текст, які ви перетягнули, ніколи не покидають цю вкладку. Вибір MP3 або M4A завантажує ще 31 МБ кодувальника, тому WAV типовий.
Параметри
Голос визначає акцент і тембр, а — менш очевидно — і те, з якою звуковою системою читається текст. Іспанський голос з англійським реченням не падає: він читає англійські слова іспанськими звуками, що гірше за повідомлення про помилку. Пропонується сім мов, а не дванадцять, бо фонемізатор, вбудований у цю сторінку, не має голосу для японської чи китайської. Прослухайте короткий файл, перш ніж братися за довгий; кожен голос несе ту саму модель, тож перемикання коштує одного синтезу, а не одного завантаження.
Як швидко читає голос, застосовано поверх темпу, який модель вважає природним. «Повільно» — 0,8×, «швидко» — 1,2×, навмисно помірно, бо після приблизно 1,5× модель починає ковтати склади, і результат звучить як хтось квапиться, а не як хтось говорить швидко. Коли репліка субтитрів надто коротка для свого рядка, сторінка сама підвищує швидкість до 1,4×, перш ніж обрізати, і це підвищення множиться на вибране тут налаштування.
WAV — нестиснутий, 24 кГц, моно, записаний тут без жодного кодувальника — тому він типовий і тому для нього нічого зайвого не завантажується. MP3 і M4A потребують 31 МБ відеодвигуна для стиснення, але виходять приблизно в десять разів меншими: десять хвилин мовлення — це близько 28 МБ у WAV і близько 2,8 МБ у MP3. Вибирайте WAV, щоб прослухати голос, MP3 — щоб надіслати файл комусь.
Ця сторінка читає текст уголос. Вставте абзац або перетягніть файл — .txt, .srt, .vtt, будь-який із дванадцяти форматів субтитрів, — виберіть один із десяти голосів і отримайте один аудіофайл, у якому все сказано від початку до кінця. Нічого не прив’язано до часу, бо й прив’язувати нема до чого: вихід — одне безперервне читання, а не доріжка під зображення.
Коли ви перетягуєте файл субтитрів, таймкоди розбирають і викидають. Читають текст кожної репліки, по порядку, з’єднаний в абзаци; переноси рядків усередині репліки стають пробілами, бо це були типографські рішення на екрані, а межі реплік не означають нічого. Це протилежність тому, що робить сторінка озвучення субтитрів, і дві сторінки стоять поруч, щоб вибір було видно, а не ховати його в прапорці: одна дає звук, що йде за шкалою часу, друга — звук, що просто тече.
Текст синтезують частинами, а не за один прохід. Токенізатор моделі мовчки обрізає все після 510 фонем — стаття на дві тисячі слів повернулася б першими двома реченнями, і файл виглядав би цілком правильним. Тому текст ділять на межах абзаців, потім на розділових знаках кінця речення, а тоді ще дрібніше для одного речення, довшого за 400 символів, і частини синтезують одну за одною з короткою паузою між ними. Саме там діє й скасування: мовлення відбувається в окремому робочому потоці, тому кнопка зупиняє його за мить, а не чекає, доки закінчиться поточне речення, і сторінка лишається придатною, поки роблять аудіо.
Список голосів — десять голосів сімома мовами: англійська (США й Британія), іспанська, французька, італійська, гінді й бразильська португальська. Японської й китайської не пропонують: фонемайзер для вимови не має голосу для жодної з них, тому варіант із написом «японська» прочитав би кандзі як англійські літери й звучав би впевнено й неправильно. Близько 98 МБ моделі та фонемайзера завантажують один раз і кешують; текст, який ви вставляєте, ніколи не залишає браузер, і це важливо, коли абзац — лист клієнта або медична нотатка.
Часті запитання
Якщо я перетягну .srt, чи потраплять у читання таймкоди або номери реплік?
Ні те, ні те. Файл розбирають тим самим шаром форматів, що й сторінки перетворення, і зберігають лише текст кожної репліки: номери, запис 00:00:01,000 --> у таймкодах і будь-які вбудовані теги на кшталт <i> або {pos()} зникають до синтезу. Ви чуєте слова в тому порядку, у якому вони стоять. Якщо хочете, щоб час поважали, а не відкидали, скористайтеся сторінкою, яка озвучує файл субтитрів: вона ставить кожну репліку на її початок.
Чи вмістить поле вставленого тексту цілу статтю, чи воно лише для речення-двох?
Ціла стаття вміститься, бо текст ділять на частини ще до того, як він потрапить у модель. Вставлений вміст обгортають як звичайний текстовий файл і ставлять у ту саму чергу, що й перетягнутий файл, тож він отримує те саме ділення по 400 символів, той самий рядок прогресу й ту саму кнопку скасування. Практичне обмеження — пам’ять, а не довжина: довга стаття дає довгий WAV, а година PCM 24 кГц моно — це кілька сотень мегабайтів, тому вибирайте MP3, якщо читання буде довшим за кілька хвилин.
Чому паузи між реченнями тут довші, ніж в озвученні субтитрів?
Бо між частинами вставляють чверть секунди тиші, щоб сусідні речення не злипалися, тоді як сторінка озвучення субтитрів ставить кожен рядок на точний початок репліки й заповнює ту паузу, яка вже була в субтитрах. Тут проміжок фіксований — 0,25 секунди незалежно від вмісту, бо немає шкали часу, якій треба бути вірним. Речення всередині однієї частини з’єднує сама модель своєю обробкою розділових знаків, тому зайву паузу отримують лише межі частин — приблизно кожні 400 символів.
Які голоси є для іспанської та португальської і скільки їх?
По одному: ef_dora для іспанської та pf_dora для бразильської португальської, поруч із двома варіантами англійської зі Сполучених Штатів (af_heart, af_bella), ще одним американським голосом (am_michael), двома британськими (bf_emma, bm_george), ff_siwis для французької, hf_alpha для гінді та if_sara для італійської. Кілька англійських голосів є тому, що саме там найчастіше просять озвучку; інші мови отримують один, щоб список лишався досить коротким для прослуховування. Голос задає й акцент, і тембр, тому він також вирішує, якими фонемами читати текст.
Чи безпечно публікувати отриманий MP3 або M4A як фрагмент подкасту?
Технічно так: обидва — стандартні контейнери, закодовані локальною збіркою ffmpeg, а звук — 24 кГц моно, що добре для мовлення й рідко для музики. Редакційно — послухайте перед публікацією: модель іноді ковтає останній приголосний, дивно наголошує власну назву або читає абревіатуру по літерах. Під час цього нічого не завантажується, водяних знаків і трекінгу не вбудовано, але синтетичний голос також не несе заяви про себе, тож якщо ваша аудиторія чекає живої людини, скажіть, хто читає.