
Нет, это не ругательное слово (для тех, кто не в курсе). Транскрибация это перевод голоса в текст.
На протяжении нескольких лет я подрабатывал этим делом. Титры для видео (использовал subtitle editor), интервью, доклады, проповеди и т. п. По заказам речь переводил в текст.
Долго пытался автоматизировать этот процесс. Сейчас существует много сервисов, которые могли бы в этом помочь. Но, как выяснилось, в реальной работе эти сервисы не могут быть полезны. На записях шум, необычный выговор докладчика, качество самой записи не позволяли применить методы автоматического распознавания голоса и перевода речи в текст.
Тем не менее существенно облегчить труд может творческое отношение к процессу.
Во время транскрибации можно использовать любой аудио проигрыватель, который управляется с клавиатуры и показывает тайминг.
При записи текста обычно требуется указывать этот самый тайминг.
Если текст большой, хотелось бы иметь некоторую форму для записи этого текста, в которой тайминги уже указаны с некоторым периодом.
Это существенно помогает ориентироваться в тексте и в аудио записи.
При необходимости по тексту легко определить место в записи, чтобы перейти к нему для уточнения.
Обычно работа по транскрибации оплачивается по времени записи. Было бы удобно сразу после завершения работы видеть и сумму, которую вам должен будет заплатить заказчик.
Оказалось, что в Linux есть простое средство позволяющее создать небольшой скрипт, который может просмотреть аудио файл, определить его продолжительность и создать текстовый файл с указанием интервалов по 15 секунд. В конце файла может быть указана цена работы.
Это средство обыкновенный терминал и bash (Одна из наиболее популярных современных разновидностей командной оболочки UNIX).
Я далеко не программист. Но мне потребовалось всего пара дней для создания такого файла. А теперь, когда я уже давно не занимаюсь транскрибацией регулярно, мне пришёл случайный заказ. Достав из закромов свой файл скрипта, я оперативно этот заказ исполнил.
Вот фрагмент работы:
0:15:30 !
Дадим же Богу возможность в нашей жизни действовать. Действовать через нас, через нашу жизнь, через наши слова, через наши поступки.
0:15:45 !
Сделаемся и мы его орудием для того чтобы ещё хоть кого-то обратить к Богу. Во всём этом пусть каждому из нас Господь поможет
0:16:00 !
и укрепит в наших желаниях. Аминь.
0:16:15 !
— — —
=282.75 ₽.
Скрипт определяет стоимость работы исходя из расценки 17 р/мин. Эта цена настраивается в строке 65 указанием цены за 15 секунд.
MON1=$(bc <<< "$TIMING*0.26016")
Содержание файла:
#!/bin/bash ##Создание формы для транскрибации ## 15 р / мин 0,216666667 р/ сек. # # echo "Запускается перетаскиванием исполняемого файла и акдиофайла в окно терминала, открытого в рабочем каталоге." echo "Из исходного видео или аудио извлекает фрагменты в формата opus по 15 сек." echo "и записывает пустые строки [имя аудио].txt" echo "Временные файлы удаляются автоматически" F_NAME_FULL1=$1 echo $F_NAME_FULL1 ##sleep 5 EXT=${F_NAME_FULL1##*.} BNAME=`basename "$F_NAME_FULL1" ".$EXT"` F_NAME_FULL="./"$BNAME"."$EXT echo $BNAME ##sleep 2 TIME_R=15 ###################################### ## Преобразование входного файла в формат OPUS для расшифровки ffmpeg -i $F_NAME_FULL -vn -c:a libopus audio.opus && ffmpeg -i ./audio.opus -f segment -segment_time $TIME_R -acodec copy "%03d.ogg" ##sleep 1 rm ./audio.opus ## Проверка наличия файла для расшифровки RASH=".ogg" NNN=0 FILE1=$F_NAME_PREF$(printf '%03d' $NNN)$RASH echo $FILE1 while [ -f "$FILE1" ] do ## echo $FILE1 echo "Есть" ## Распознавание ################################ PREF="@" FILE2=$PREF$FILE1 echo $FILE2 (echo "X")>>./text_1.txt ## Контролируем процесс ################################ rm $FILE1 NNN=$[1+$NNN] ## Добавляем пустую строку с номером минуты. TIMING=$(($NNN*$TIME_R)) ## расходы ############################################ MON1=$(bc <<< "$TIMING*0.26016") ##MON1=$(bc <<< "$TIMING*0.27") MON==$(echo "scale=2;$MON1/1" |bc) printf -v ts '%d:%02d:%02d' `expr $TIMING / 3600` `expr $TIMING / 60` `expr $TIMING % 60` echo " $ts ! " >> ./text_1.txt ########################################### FILE1=$F_NAME_PREF$(printf '%03d' $NNN)$RASH ## sleep 1 done echo " - - - ">>./text_1.txt echo ${MON} " ₽. ">>./text_1.txt echo " 0:00:00 !">'./'$BNAME'.txt' echo -e «\n+++» | cat ./text_1.txt>>'./'$BNAME'.txt' ##echo | cat ./text_1.txt>>'./'$BNAME'.txt' clear ################################ rm ./text_1.txt ## mm.ss TIME_CODE="0:00:00" TIME_CODE_str=$"("$TIME_CODE$")"
Имя файла любое допустимое, например write-speech-form.
Достаточно открыть окно терминала из каталога где лежит аудио файл и скрипт, перетащить мышью файл скрипта и аудио файл в окно терминала, нажать <Enter>. Имя аудио файла не должно содержать пробелов и лишних точек, должны быть установлены права на выполнение. Я именую обычно датой или временем 20_59_19.mp3.
Через несколько секунд в каталоге появится текстовая форма разграфка с ценой работы.
При необходимости автоматически проставленные тайминги можно удалить или заменить на более редкие.
В процессе работы скрипт разбирает исходный файл на фрагменты. Это можно использовать для анализа фрагментов и решении других задач автоматизации. Раньше мной это использовалось для отправки фрагментов Яндексу для дешифровки.
ссылка на оригинал статьи https://habr.com/ru/post/655333/
Добавить комментарий