Синтез речи в браузере: возможно ли это в HTML-файле?
Да, это абсолютно реально. В современном веб-приложении, состоящем из одного HTML-файла, можно реализовать чтение текста книг вслух без единой сторонней библиотеки.
Краткая статья
В основе лежит Web Speech API — нативный интерфейс браузера, который включает в себя SpeechSynthesis (синтез речи). Это значит, что весь процесс происходит на стороне клиента: не нужно подключать внешние сервисы, платить за API или отправлять данные на сервер.
Основные преимущества этого подхода:
· Кроссплатформенность: работает в Chrome, Edge, Firefox и Safari.
· Приватность: текст книги не покидает устройство пользователя.
· Простота: достаточно нескольких строк JavaScript, чтобы «оживить» текст.
Главный нюанс — качество и доступность голосов зависят от браузера и операционной системы. Например, Chrome и Edge обычно имеют широкий набор голосов, включая русский («Google русский»), тогда как в некоторых других браузерах могут быть только системные голоса. Тем не менее, для базового чтения книг этого вполне достаточно.
Пример кода
Вот минимальный рабочий пример, который можно сохранить как .html-файл и открыть в браузере:
```html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Чтение текста вслух</title>
</head>
<body>
<h2>Синтез речи</h2>
<textarea id="text" rows="5" cols="50">Привет! Это пример синтеза речи прямо в браузере.</textarea>
<br><br>
<button onclick="speak()">Читать</button>
<button onclick="stop()">Стоп</button>
<script>
function speak() {
const text = document.getElementById('text').value;
if (!window.speechSynthesis) {
alert('Ваш браузер не поддерживает синтез речи.');
return;
}
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'ru-RU'; // Устанавливаем русский язык
utterance.rate = 1.0; // Скорость (0.5 - 2)
utterance.pitch = 1.0; // Тон (0 - 2)
window.speechSynthesis.speak(utterance);
}
function stop() {
window.speechSynthesis.cancel();
}
</script>
</body>
</html>
```
Этот код создаёт простое поле для ввода текста и две кнопки. При нажатии на «Читать» браузер озвучит введённый текст.