Ваш вопрос долог и хаотичен, и я не знаю то, что Вы ожидаете для ответа. Идя Вашим заголовком, я думаю, что Ваш фокус находится на этом фрагменте кода Python:
lineone = linecache.getline(filename, i)
os.system("echo " + lineone + "|" + "festival --tts")
Ваша проблема - это lineone
целая строка, включая заключительную новую строку. Вы должны, как они говорят на земле Perl, громко жуют его.
lineone = linecache.getline(filename, i).rstrip('\n')
os.system("echo " + lineone + "|" + "festival --tts")
Ваш первый сценарий оболочки выглядит ужасно сложным и медленным для того, что он делает. Почему Вы вычисляете количество строк, затем получая строки числом в порядке? Вы могли просто считать вход, который одну строку за один раз, как Вы делают в Python.
while IFS= read -r line; do
echo "$line" | text2wave -o temp.wav
sox "otherstuff.wav" "temp.wav" "silence.wav" "output.wav"
mv output.wav otherstuff.wav
rm temp.wav
done
Необходимо смочь упростить это далее при помощи необработанных звуковых файлов, которые не содержат заголовок и так могут быть связаны:
while IFS= read -r line; do
echo "$line" | text2wave -otype raw >>otherstuff.raw
cat silence.raw >>otherstuff.raw
done
sox … otherstuff.raw otherstuff.wav
Необходимо будет сказать sox
в каких параметрах (таких как выборка глубины) необработанный звуковой файл кодируется.
Можно удалить связанный файл профиля под /etc/NetworkManager/system-connections
для LinuxMint.
Подробнее: https://superuser.com/questions/517678/how-can-i-reset-all-network-settings-in-linux-mint