Есть ли способ модулировать мой голос на лету?

15

Мне нужен способ мгновенной модуляции моего голоса (для понижения или повышения высоты звука и т. Д. Для обеспечения конфиденциальности) для использования в Mumble, TeamSpeak и других подобных программах. Есть ли способ сделать это под Linux / Ubuntu?

Я нашел пару возможных программ под Windows, и при необходимости я мог бы запустить Mumble, TeamSpeak и т. Д. Под VirtualBox / Wine вместе с модулятором, но я бы предпочел использовать Linux, хотя я не смог найти ни одного нативного программы для Linux, которые могут сделать это во время моего быстрого поиска в Google.

elijaheac
источник

Ответы:

23
  1. Установите необходимое программное обеспечение:

    sudo apt-get install sox libsox-fmt-pulse pavucontrol
    
  2. Сделайте ноль-приемник в pulseaudio:

    pactl load-module module-null-sink
    
  3. Начните soxзапись с устройства записи по умолчанию (источник по умолчанию) и вывод на нулевой приемник:

    sox -t pulseaudio default -t pulseaudio null pitch -800
    

    (Если вы не хотите , чтобы выполнить запись с источника по умолчанию, измените вышеприведенную команду соответственно) . В -800в приведенной выше команде является желаемым изменение тона, вы можете изменить это значение , как вы хотите, например -300, +200, +500и т.д.. soxтакже есть некоторые другие «эффекты», кроме изменения высоты тона, которые можно применить к аудио, вы можете проверить их в man sox.

  4. Запустите программу захвата (Skype, Teamspeak и т. Д.).

  5. Старт pavucontrol.

  6. Пока вы захватываете программу, она будет отображаться pavucontrolна вкладке «Запись». Измените источник записи по умолчанию на Монитор нулевого выхода .

    настройки pavucontrol

  7. Проверьте результаты, это должно работать.

Примечания:

  1. Вы можете настроить pulseaudio на автоматическую загрузку нулевого слива, если вы отредактируете /etc/pulse/default.paфайл и добавите следующую строку в конец этого файла:

    load-module module-null-sink
    
  2. Внесенные вами изменения pavucontrolбудут запомнены, поэтому при следующем запуске программы захвата она автоматически попытается выполнить запись из нулевого приемника. Если это не подходит для вас, просто измените источник на значение по умолчанию, pavucontrolкогда вам нужно.

  3. Если вы предпочитаете способ терминала: вы можете установить источник записи для вашей программы захвата в терминале (без использования pavucontrol), если вы запускаете свою программу с PULSE_SOURCEправильно установленной переменной. Например, чтобы начать запись в скайпе с источника монитора нулевого приемника:

    PULSE_SOURCE=null.monitor skype
    
  4. Изменение высоты тона вашего голоса не дает вам хорошей конфиденциальности:

    • Если другой конец знает вас, знает ваш реальный голос, то вам придется сильно изменять высоту тона, поэтому для другого конца будет очевидно, что вы изменили свой звук. Если он хочет, он может захватить ваш измененный голос и изменить высоту тона. Или другой конец может просто игнорировать / отклонить ваш звонок по очевидным причинам.
    • Если другой конец не знает вашего настоящего голоса, хорошо ... В этом случае нет никакой пользы от изменения вашего голоса, так как они даже не знают настоящего.
    • Если вы пытаетесь защитить себя от перехвата вашего голоса, атаки «человек посередине» и т. Д., То весьма вероятно, что эти злобные парни знают достаточно, чтобы восстановить ваш настоящий звук практически из любой модификации, которую вы делаете на нем. с такими простыми программами.
    • Кроме того, для всех вышеперечисленных случаев: когда вы говорите, вас может идентифицировать не только звук вашего голоса, но и то, как вы говорите, ваш акцент, слова и фразы, которые вы используете, и т. Д.
    • Если вы хотите более безопасный способ голосовой связи, вы можете использовать механизм преобразования текста в речь, чтобы превратить ваш набранный в голос. Это гораздо более безопасный способ. (Конечно, это может быть невозможно, если невозможно напечатать ваши сообщения, например, в многопользовательской игре.)

Тем не менее, этот метод обеспечивает лучшую конфиденциальность, чем отсутствие конфиденциальности вообще. И может быть также забавно обмануть некоторых друзей измененным голосом.

сокольничий
источник
Любая идея о том, как я могу применить плагин LADSPA без использования sox? возможно, с использованием той же нулевой раковины ( askubuntu.com/questions/43950/… ). Мне не нравится идея включения «записи» и передачи этого.
Braindamage
Это потрясающе и именно то, что я искал, спасибо!
xamox
это также может быть использовано для изменения высоты выходного сигнала по умолчанию, а не только для ввода. pavucontrol действительно мощный. спасибо
phil294
2
к сожалению, это также добавляет задержку, которая, кажется, резко увеличивается с течением времени
phil294
@ phil294, я нашел способы значительно уменьшить время ожидания. Например, попробуйте: nice -n -8 sox --buffer 2048 -c 1 -r 48000 -t pulseaudio default -t pulseaudio null pitch -800. Комбинация более низкого niceзначения и -c(каналов), -r(частоты дискретизации) и --buffer(по умолчанию 8192 байта (!), См. Здесь ) творит чудеса. Количество каналов и частота дискретизации должны идеально соответствовать вашему источнику. (продолжение ...)
23
3

Вы можете проверить это, это Java-программа, которая работает под Linux и Windows, которая делает то, что вы хотите. http://www.pitchtech.ch/PitchBox/

learn_to_use_google
источник
1

Я также искал подобное приложение. Я думаю, что нашел возможный ответ: LV2 и его плагин VocProc

Я нашел это в этой теме на форумах Ubuntu , которая также может быть вам полезна.

Есть также плагины для Teamspeak, которые позволяют вам редактировать свой голос. Могут быть другие плагины для бормотания, и я продолжу искать.

Безымянный инженер
источник
@ Оли Это LOA. Удалить ссылки и ничего не осталось.
Pilot6
1
@ Pilot6 Я категорически не согласен. Уберите ссылки, и в ответе по-прежнему будет указано название приложения, которое выполняет то, что запрашивается.
Оли