если у меня есть более длинные тексты для чтения, мне нравится сделать, чтобы они читали в меня со следующим сценарием от https://wiki.ubuntuusers.de/Sprachausgabe/#SVOX-pico2wave.
1 #!/bin/bash
2 pico2wave -l=de-DE -w=/tmp/test.wav "$(cat ${1})"
3 avplay -f wav -loglevel 0 >/dev/null -x 100 -y 50 -vn -autoexit /tmp/test.wav
4 rm /tmp/test.wav
Сохраните сценарий как svox.sh в/usr/local/bin и запустите его с
svox.sh TEXTFILE.txt
Это работает действительно хорошо с английскими текстами (с "pico2wave - l=en-ГБ [...]" в строке 2, конечно), но аудио скорость на немецком языке является немного медленной.
Что я попробовал, до сих пор заменяет строку 3
avplay -f wav -loglevel 0 >/dev/null -x 100 -y 50 -vn -autoexit -filter:a "atempo=2.0" /tmp/test.wav
все же это не работало. Для обнаружения, почему это, я пытался ввести следующую команду в терминале:
avplay -f wav -x 100 -y 50 -vn -autoexit -filter:a "atempo=2.0" test.wav
Я получил следующее сообщение об ошибке:
[...]
Failed to set value 'atempo=2.0' for option 'filter:a': Option not found
Таким образом, кажется, что или синтаксис не правилен или опция, не поддерживается. Кто-либо знает о способе ускорить аудиовыход?
P.S.:
моя система: Linux/Lubuntu 16.04.5 LTS, 64 бита
Можно использовать опцию -af
следующим образом:
ffplay -af "atempo=2" <аудио_файл>
Это будет воспроизводить аудиофайл в два раза быстрее. Подробнее здесь:
тем временем мне удалось решить эту проблему с обходным решением. Я использую этот сценарий:
#!/bin/bash
pico2wave -l=de-DE -w=/tmp/test.wav "$(cat ${1})"
ffmpeg -i /tmp/test.wav -filter:a "atempo=1.2" -vn /tmp/test2.wav # increase speed by a factor of 1.2
firejail --net=none avplay -f wav -loglevel 0 >/dev/null -x 100 -y 50 -vn -autoexit /tmp/test2.wav # play sound in a sandbox
rm /tmp/test.wav
rm /tmp/test2.wav
Если Вы рады использовать MPlayer, а не FFplay, там относительно легкий метод для выполнения цели. Используйте следующий синтаксис:
mplayer -af scaletempo -speed 0.5 my_file.mp4
Не забудьте заменять my_file.mp4
с названием Вашего фактического медиа-файла. Теперь во время воспроизведения можно использовать следующие ключи:
{ <---This key will dynamically slow the playback speed
} <---This key will dynamically increase playback speed
Надо надеяться, это выполнит Вашу цель.
Ссылки: