olegmaschurov/sait-ozvuchka-teksta-besplatno
const textarea = document.querySelector("textarea"), voiceList = document.querySelector("select"), speechBtn = document.querySelector("button"); let synth = speechSynthesis, isSpeaking = true; voices(); function voices(){ for(let voice of synth.getVoices()){ let selected = voice.name === "Google US English" ? "selected" : ""; let option = `<option value="${voice.name}" ${selected}>${voice.name} (${voice.lang})</option>`; voiceList.insertAdjacentHTML("beforeend", option); } } synth.addEventListener("voiceschanged", voices); function textToSpeech(text){ let utterance = new SpeechSynthesisUtterance(text); for(let voice of synth.getVoices()){ if(voice.name === voiceList.value){ utterance.voice = voice; } } synth.speak(utterance); } speechBtn.addEventListener("click", e =>{ e.preventDefault(); if(textarea.value !== ""){ if(!synth.speaking){ textToSpeech(textarea.value); } if(textarea.value.length > 80){ setInterval(()=>{ if(!synth.speaking && !isSpeaking){ isSpeaking = true; speechBtn.innerText = "Convert To Speech"; }else{ } }, 500); if(isSpeaking){ synth.resume(); isSpeaking = false; speechBtn.innerText = "Pause Speech"; }else{ synth.pause(); isSpeaking = true; speechBtn.innerText = "Resume Speech"; } }else{ speechBtn.innerText = "Convert To Speech"; } } }); и добавить MP3 файл и дать имя голос в javascript и после нажатия кнопки выпадает аудио автовоспроизведение все вместе скачивания аудиофайла беплатно навсегда и на русском
JavaScript · рейтинг 0 · 👍 0 · ❤️ 0 · 💎 0 · 0 форков · ссылка на SourceCraft
Дата анализа: 29.09.2026 22:54
Почему такой балл
Категории без данных не обнуляют итог: их вес перераспределяется между категориями, где балл есть.
Сильные и слабые стороны
Слабые: Активность: 0, Issues: нет данных, Состояние кода: 48, Проект давно не проявлял активность, Не найдено тестов, Мало релизов за последние 30 дней, Мало merge requests за последние 30 дней
Сводка YandexGPT
Находки и рекомендации
-
Проект давно не проявлял активность
Активность · критическая
+12 к Score
Последняя известная активность была около 142 дней назад (источник: repository.last_updated).
Проверьте актуальность проекта, backlog и владельцев активных направлений.
-
Не найдено тестов
Состояние кода · высокая
+12 к Score
В дереве репозитория не обнаружено ни каталогов tests/test/spec, ни файлов с типовыми именами тестов.
Добавьте тесты хотя бы для критичной части кодовой базы и подключите их к CI.
-
Мало релизов за последние 30 дней
Активность · высокая
+9 к Score
Подметрика «Релизы» — 0 из 100. Полный балл — от 3 релизов за 30 дней.
Выпустите релиз или опишите, почему проект их не использует — балл считает отсутствие релизов недобором.
-
Мало merge requests за последние 30 дней
Активность · высокая
+9 к Score
Подметрика «Merge requests» — 0 из 100. Полный балл — от 10 merge requests.
Проверьте, что изменения проходят через merge requests, а не только прямыми коммитами.
-
Нет конфигурации линтера/форматтера
Состояние кода · средняя
+7 к Score
В репозитории не найдено конфигов известных линтеров/форматтеров (ESLint, Ruff/Flake8, Prettier, rustfmt и т.п.).
Подключите линтер и форматтер под используемый стек и зафиксируйте правила в конфиге.
-
Нет CHANGELOG и каталога docs/
Документация · низкая
+4 к Score
Не найдены CHANGELOG и каталог docs/ — история изменений и подробная документация отсутствуют.
Заведите CHANGELOG.md и каталог docs/ для пользовательской и разработческой документации.
-
Нет инструкций по сборке и тестам
Документация · средняя
+3 к Score
В README не описано, как собрать проект и запустить тесты.
Добавьте разделы Build и Test с командами и необходимыми зависимостями.
-
Не найден манифест зависимостей
Состояние кода · низкая
+3 к Score
В репозитории есть исходный код, но не найдено ни одного из известных файлов манифеста зависимостей.
Зафиксируйте зависимости явным манифестом (package.json/pyproject.toml/go.mod и т.п.).
-
Не хватает CONTRIBUTING или CODEOWNERS
Документация · низкая
+2 к Score
Подметрика «CONTRIBUTING и CODEOWNERS» — 50 из 100.
Добавьте недостающий CONTRIBUTING.md или CODEOWNERS.
-
README неполный
Документация · низкая
README есть, но «README» — 99 из 100: не хватает объёма или раздела о структуре.
Допишите README: зачем проект и из чего состоит репозиторий.
История проверок
- 29.09.2026 22:54 — 39
Безопасность (AppSec) и CI/CD здесь не оцениваются: к ним есть доступ только по PAT владельца репозитория.