How to change audio-speed with ffplay


#1

Hi altogether,

if I have longer texts to read I like to have them read to me with the following script from 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

Save the script as svox.sh in /usr/local/bin and start it with

svox.sh TEXTFILE.txt

That works really well with English texts (with “pico2wave -l=en-GB […]” in line 2 of course) but the audio-speed in German is a bit slow.

What I´ve tried so far is replacing line 3 with

avplay -f wav -loglevel 0 >/dev/null -x 100 -y 50 -vn -autoexit -filter:a "atempo=2.0" /tmp/test.wav

yet that didn´t work. In order to find out why that is I tried typing the following command in the terminal:

avplay -f wav -x 100 -y 50 -vn -autoexit -filter:a "atempo=2.0" test.wav

I got the following error-message:

[...]
Failed to set value 'atempo=2.0' for option 'filter:a': Option not found

So it seems that either the syntax isn´t correct or the option isn´t supported.
Does anyone know of a way to speed up the audio output?

Thanks a lot in advance.
Greetings
Rosika :slightly_smiling_face:

P.S.:

my system: Linux/Lubuntu 16.04.5 LTS, 64 bit


#2

Hi,

in the meantime I managed to solve this problem with a a workaround using the following script:

#!/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

Cheers
Rosika :relieved: