{"id":23383146,"url":"https://github.com/fostroll/voice2speech","last_synced_at":"2025-06-19T08:03:57.817Z","repository":{"id":202584765,"uuid":"287250771","full_name":"fostroll/voice2speech","owner":"fostroll","description":null,"archived":false,"fork":false,"pushed_at":"2020-08-14T19:58:16.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T06:35:59.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fostroll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-08-13T10:36:43.000Z","updated_at":"2020-08-14T19:58:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"a93bcaec-31d2-4dcd-86f1-45d2491dc126","html_url":"https://github.com/fostroll/voice2speech","commit_stats":null,"previous_names":["fostroll/voice2speech"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fostroll%2Fvoice2speech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fostroll%2Fvoice2speech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fostroll%2Fvoice2speech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fostroll%2Fvoice2speech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fostroll","download_url":"https://codeload.github.com/fostroll/voice2speech/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247813007,"owners_count":21000411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-21T22:17:41.272Z","updated_at":"2025-04-08T09:30:18.127Z","avatar_url":"https://github.com/fostroll.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# voice2speech\r\n\r\nНабор утилит для распознавания речи. Для работы нужны *ffmpeg* и доступ к\r\n*Yandex SpeechKit* (облачный или боксовый)\r\n\r\n## Использование\r\n\r\n```sh\r\npython make_chunks.py [n_procs]\r\n```\r\nИзвлекает звуковые фрагменты, соответствующие отдельным фразам из звуковых\r\nфайлов при помощи *ffmpeg* и создаёт map-файл, описывающий временные позиции\r\nэтих фрагментов.\r\n\r\n**n_procs**: количество одновременно запущенных процессов. По умолчанию\r\nиспользуется `1` процесс. Если **n_procs** == `0`, то n_procs берётся на `1`\r\nбольше, чем количество доступных процессоров (ядер).\r\n\r\n**NB:** Может потребоваться редактирование значений переменных в скрипте.\r\n\r\nТакже надо иметь в виду, что файлы `make_chunks.map` и `make_chunks.log`\r\nоткрываются в режиме добавления. Если запускается новый цикл обработки, их\r\nнужно предварительно удалить вручную. Кроме того надо удалить файлы результата\r\nиз каталога `chunks` и временные файлы (если есть) из каталога `tmp`.\r\n\r\n```sh\r\npython check_chunks_log.py\r\n```\r\nПроверяет лог-файл скрипта `make_chunks.py` на наличие ошибок извлечения.\r\n\r\n```sh\r\npython decode_chunks.py\r\n```\r\nПереводит голосовые фрагменты, выделенные скриптом `make_chunks.py`, в текст\r\nпри помощи *Yandex SpeechKit*.\r\n\r\nВ случае боксового SpeechKit'а создаётся по одному процессу для каждого\r\nсервера (переменная `servers`). Поскольку качество распознавания Яндекса\r\nсильно ухудшается с увеличением этого параметра (видимо, загрузка сервера\r\nрастёт, время распознавания фиксировано --\u003e качество падает), увеличивать\r\nчисло процессов не рекомендуется.\r\n\r\nДля облачного SpeechKit'а количество процессов соответствует количеству\r\nдиректорий в переменной `backup_dirs`. Директории, имена которых там\r\nперечислены, должны быть созданы вручную.\r\n\r\nДля боксового SpeechKit'а число директорий в `backup_dirs` должно быть не\r\nменьше числа серверов в переменной `servers`.\r\n\r\n**NB:** В скрипте необходимо отредактировать значения переменных `servers`\r\nи/или `cloud`, а также задать значение переменной `USE_CLOUD` (установите\r\n`True`, если используете облачный SpeechKit). Возможно, дополнительно нужно\r\nбудет изменить список директорий в переменной `backup_dirs`.\r\n\r\nПосле завершения скрипт оставляет в каталоге `tmp` некоторые служебные файлы.\r\nИногда это оказывается полезно. Перед следующим запуском скрипта директорию\r\n`tmp` следует очистить, иначе скрипт завешится с ошибкой.\r\n\r\n```sh\r\nsh decode_chunks.sh\r\n```\r\nПросто запускает `decode_chunks.py` в фоновом режиме.\r\n\r\n## Важно!\r\n\r\nВ скриптах отсутствует обработка ошибок вызываемых программ (*ffmpeg*, *curl*\r\nи т.д.). Придётся либо контролировать это вручную, либо добавить обработчики.\r\n\r\n## License\r\n\r\n***voice2speech*** is released under the Creative Commons License. See the\r\n[LICENSE](https://github.com/fostroll/voice2speech/blob/master/LICENSE) file\r\nfor more details.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffostroll%2Fvoice2speech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffostroll%2Fvoice2speech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffostroll%2Fvoice2speech/lists"}