An open API service indexing awesome lists of open source software.

https://github.com/fostroll/voice2speech


https://github.com/fostroll/voice2speech

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# voice2speech

Набор утилит для распознавания речи. Для работы нужны *ffmpeg* и доступ к
*Yandex SpeechKit* (облачный или боксовый)

## Использование

```sh
python make_chunks.py [n_procs]
```
Извлекает звуковые фрагменты, соответствующие отдельным фразам из звуковых
файлов при помощи *ffmpeg* и создаёт map-файл, описывающий временные позиции
этих фрагментов.

**n_procs**: количество одновременно запущенных процессов. По умолчанию
используется `1` процесс. Если **n_procs** == `0`, то n_procs берётся на `1`
больше, чем количество доступных процессоров (ядер).

**NB:** Может потребоваться редактирование значений переменных в скрипте.

Также надо иметь в виду, что файлы `make_chunks.map` и `make_chunks.log`
открываются в режиме добавления. Если запускается новый цикл обработки, их
нужно предварительно удалить вручную. Кроме того надо удалить файлы результата
из каталога `chunks` и временные файлы (если есть) из каталога `tmp`.

```sh
python check_chunks_log.py
```
Проверяет лог-файл скрипта `make_chunks.py` на наличие ошибок извлечения.

```sh
python decode_chunks.py
```
Переводит голосовые фрагменты, выделенные скриптом `make_chunks.py`, в текст
при помощи *Yandex SpeechKit*.

В случае боксового SpeechKit'а создаётся по одному процессу для каждого
сервера (переменная `servers`). Поскольку качество распознавания Яндекса
сильно ухудшается с увеличением этого параметра (видимо, загрузка сервера
растёт, время распознавания фиксировано --> качество падает), увеличивать
число процессов не рекомендуется.

Для облачного SpeechKit'а количество процессов соответствует количеству
директорий в переменной `backup_dirs`. Директории, имена которых там
перечислены, должны быть созданы вручную.

Для боксового SpeechKit'а число директорий в `backup_dirs` должно быть не
меньше числа серверов в переменной `servers`.

**NB:** В скрипте необходимо отредактировать значения переменных `servers`
и/или `cloud`, а также задать значение переменной `USE_CLOUD` (установите
`True`, если используете облачный SpeechKit). Возможно, дополнительно нужно
будет изменить список директорий в переменной `backup_dirs`.

После завершения скрипт оставляет в каталоге `tmp` некоторые служебные файлы.
Иногда это оказывается полезно. Перед следующим запуском скрипта директорию
`tmp` следует очистить, иначе скрипт завешится с ошибкой.

```sh
sh decode_chunks.sh
```
Просто запускает `decode_chunks.py` в фоновом режиме.

## Важно!

В скриптах отсутствует обработка ошибок вызываемых программ (*ffmpeg*, *curl*
и т.д.). Придётся либо контролировать это вручную, либо добавить обработчики.

## License

***voice2speech*** is released under the Creative Commons License. See the
[LICENSE](https://github.com/fostroll/voice2speech/blob/master/LICENSE) file
for more details.