На главную страницу | Новости | Ссылки | Контакты
[22.07.07] Вам никогда не хотелось изменить свой голос?...
У меня такая необходимось вдруг возникла. Ну, представте себе, надо надо позвонить по телефон соседу, и чтобы при этом он тебя НЕ УЗНАЛ. Это ведь здорово! Не так ли? То есть необходимость есть, а значит есть и мотив к поиску решения это задачки.
1. Фильтры-эффекты
play 1.wav echo 1 0.6 150 0.6 -Эхо
play 1.wav vibro 20 0.9 -Вибрато
play 1.wav chorus 0.7 0.7 20 1 5 2 -s -хор
play 1.wav reverse - Воспроизведите задом на перед
play 1.wav band 3000 700 -Полосовой фильтр
play 1.wav band 0 700 -Полосовой фильтр
В общем неплохими эффектами также являются следующие:
echo 1 0.6 100 0.8 300 0.5 500 0.3
Обратите внимание на reverse. Эта функция очень прикольна тем, что в таком зашифрованном виде голосовое сообщение можно передавать даже по телефону(!!!), а на конечном пункце восстанавливать его назад. Конечно, качество сообщения при этом пострадает, но разобрать можно.
---------
= sox =
На самом деле, play - это всего лишь платформо-независимый скрипт, входящий в состав пакета sox.
Должно быть
sox 1.wav -t ossdsp /dev/dsp
sox 1.wav -t raw -r 44100 -sw -c 2 - | esdcat
У меня, правда, всё это не работало, т.к. вознили проблемы - всегда занят /dev/dsp.
Работа с потоками:
sox - 1.wav < 2.wav
sox 1.wav - > 2.wav
Так мы сможем использовать sox как фильтр в програмном канале.
[02:40] У меня получилось осуществить свою мечку! На помощь пришёл сервис ARtS - artsd, вместе с программами artsplay и artscat. Работает в ALSA и OSS.
Внимание, если у вас заработает следующая инстркуция, то это может привести к цепной реакции, когда звук с колонок будет попадать в микрофон, усиливатся и снова идти в динамики... и так до бесконечности. Поэтому осторожно:
rec -v 30 -t raw -c 1 - | artscat
[9:47] Однако такое качество звука некуда не годится - оно слишком нестабильное и прерывистое. Нужно или использовать буфер в несколько секунд, или использовать всё же не программый, а аппаратный миксер.
[10:32] Вот, что надо!!!!
rec -t raw -c 1 -r 88200 - | artscat
Можно попробывать применить полосовой фильтр:
rec -t raw -c 1 -r 88200 - band 3000 7009 | artscat
[23.07.07 22:43] Пока полосовой фильтр - это всё, что я смог найти из эффектов sox, из тех, что работают прямо в потоке. Возможно, что некоторых случаях и его может быть достаточно.
Затем (когда-нибудь) я хочу поэксперементировать с другими звуковыми редакторами (типа wavelab), чтобы узнать, существует ли в природе необходимые эффекты вообще. Если да, то тогда можно будет отказаться от потока, а зделать проще.
Так я придумал, что можно поступить следующим образом. А именно, можно использовать принцип не домашнего телефона, а принцип работы РАЦИИ - приём-вызов. Т.е. я нажимаю на кнопку и говорю в микрофон лишь одну фразу. Затем кнопку отпускаю и данная запись быстренько обрабатывается и посылается по назначению. Само собой разуещееся, что не нужно заставлять ждать при этом собеседника слишком долго!
В качестве просто решения можно написать программку на С++, а, возможно, даже и с помощью скриптов (хотя маловероятно).
В качестве очень простого, но довольно "смешного" эффекта можно использовать следующий:
"speed 2".