Czy istnieje sposób na modulowanie głosu w locie?

15

Potrzebuję sposobu modulacji głosu w locie (w celu obniżenia lub podniesienia wysokości tonu itp. W celu zachowania prywatności) w celu użycia w Mumble, TeamSpeak i innych tego typu programach. Czy jest jakiś sposób, aby to zrobić pod Linux / Ubuntu?

Znalazłem kilka możliwych programów pod Windows i, jeśli to konieczne, mogłem uruchomić Mumble, TeamSpeak itp. Pod VirtualBox / Wine wraz z modulatorem, ale zdecydowanie wolałbym używać Linuksa, chociaż nie byłem w stanie znaleźć żadnego natywnego programy dla systemu Linux, które mogą to zrobić podczas mojej szybkiego wyszukiwania w Google.

elijaheac
źródło

Odpowiedzi:

23
  1. Zainstaluj niezbędne oprogramowanie:

    sudo apt-get install sox libsox-fmt-pulse pavucontrol
    
  2. Zrób null-sink w pulseaudio:

    pactl load-module module-null-sink
    
  3. Rozpocznij soxnagrywanie od domyślnego urządzenia nagrywającego (domyślne źródło) i przesyłanie do zlewu zerowego:

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

    (Jeśli nie chcesz nagrywać od źródła domyślny, zmień odpowiednio powyższego polecenia.) Jak -800w powyższym poleceniu jest pożądana zmiana tempa, można zmodyfikować tę wartość, jak chcesz, na przykład -300, +200, +500itp. soxmają także inne „efekty” inne niż zmiana wysokości tonu, które można zastosować do dźwięku, możesz je sprawdzić man sox.

  4. Uruchom program przechwytujący (Skype, Teamspeak itp.).

  5. Początek pavucontrol.

  6. Podczas przechwytywania program próbuje przechwycić, pojawi się on w pavucontrolzakładce Nagrywanie. Zmień źródło zapisu z domyślnego na Monitor wyjścia zerowego .

    ustawienia pavucontrol

  7. Sprawdź wyniki, powinno działać.

Uwagi:

  1. Możesz sprawić, by pulseaudio automatycznie ładował moduł zerowy, jeśli edytujesz /etc/pulse/default.paplik i dodasz następujący wiersz na końcu tego pliku:

    load-module module-null-sink
    
  2. Wprowadzone zmiany pavucontrolzostaną zapamiętane, więc przy następnym uruchomieniu programu przechwytującego program automatycznie spróbuje nagrać z zerowego zlewu. Jeśli nie jest to dla ciebie OK, po prostu zmień źródło na domyślne w pavucontrolrazie potrzeby.

  3. Jeśli wolisz sposób na terminalu: możesz ustawić źródło nagrywania dla swojego programu do przechwytywania w terminalu (bez użycia pavucontrol), jeśli uruchomisz program z PULSE_SOURCEustawioną poprawnie zmienną. Np. Aby uruchomić nagrywanie na skype ze źródła monitora zerowego zlewu:

    PULSE_SOURCE=null.monitor skype
    
  4. Zmiana tonu głosu nie zapewnia bardzo dobrej prywatności:

    • Jeśli drugi koniec cię zna, zna twój prawdziwy głos, będziesz musiał bardzo zmienić wysokość tonu, więc dla drugiego końca będzie oczywiste, że zmieniłeś dźwięk. Jeśli chce, może uchwycić twój zmieniony głos i zmienić wysokość tonu. Albo drugi koniec może po prostu zignorować / odrzucić twoje połączenie z oczywistych powodów.
    • Jeśli drugi koniec nie zna twojego prawdziwego głosu, cóż ... W tym przypadku zmiana głosu nie ma żadnej realnej korzyści, ponieważ nawet nie znają prawdziwego.
    • Jeśli próbujesz uchronić się przed kimś, kto przechwytuje Twój głos, atakiem człowieka w środku itp., Bardzo prawdopodobne jest, że ci złośliwi faceci wiedzą wystarczająco dużo, aby odzyskać twój prawdziwy dźwięk po prawie każdej modyfikacji, którą na nim zrobisz. z tak prostym oprogramowaniem.
    • Ponadto we wszystkich powyższych przypadkach: kiedy mówisz, to nie tylko dźwięk twojego głosu może Cię zidentyfikować, ale sposób mówienia, akcent, używane słowa i frazy itp.
    • Jeśli chcesz bezpieczniejszego sposobu komunikacji głosowej, możesz użyć mechanizmu zamiany tekstu na mowę, aby zmienić pisanie na głos. To znacznie bezpieczniejszy sposób. (Oczywiście może to nie być możliwe, jeśli nie można pisać wiadomości, np. W grze wieloosobowej).

Niemniej jednak ta metoda zapewnia lepszą prywatność niż brak prywatności. I fajnie jest też oszukiwać znajomych zmienionym głosem.

sokolnik
źródło
jakiś pomysł na to, jak mogę zastosować wtyczkę LADSPA bez użycia sox? może używając tego samego zerowego zlewu ( askubuntu.com/questions/43950/… ). Nie podoba mi się pomysł włączenia „nagrywania” i potokowania tego.
braindamage
To jest niesamowite i dokładnie tego szukałem, dzięki!
xamox,
można tego również użyć do zmiany domyślnej wysokości wyjściowej, a nie tylko wejścia. pavucontrol jest naprawdę potężny. dziękuję
phil294
2
niestety dodaje również opóźnienie, które wydaje się dramatycznie zwiększać w czasie
phil294
@ phil294, znalazłem sposoby na znaczne zmniejszenie opóźnienia. Na przykład, spróbuj: nice -n -8 sox --buffer 2048 -c 1 -r 48000 -t pulseaudio default -t pulseaudio null pitch -800. Kombinacja niższej nicewartości i -c(kanały), -r(samplerate) i --buffer(domyślnie 8192 bajtów (!), Patrz tutaj ) robi cuda. Liczba kanałów i próbkowanie muszą idealnie pasować do źródła. (kontynuuje ...)
Marc.2377,
3

Możesz to sprawdzić, jest to program Java, który działa w systemie Linux i Windows, który robi to, co chcesz. http://www.pitchtech.ch/PitchBox/

learn_to_use_google
źródło
1

Szukałem również podobnej aplikacji. Myślę, że znalazłem możliwą odpowiedź: LV2 i jego wtyczka VocProc

Znalazłem to przez ten wątek na forum Ubuntu , który może ci się przydać.

Istnieją również wtyczki do Teamspeak umożliwiające edycję głosu. Mogą istnieć inne wtyczki do mumble, również będę nadal szukał.

Nienazwany inżynier
źródło
@Oli To jest LOA. Usuń linki i nic nie pozostanie.
Pilot6
1
@ Pilot6 Zdecydowanie się nie zgadzam. Odsuń linki, a odpowiedź nadal podaje nazwę aplikacji, która wykonuje to, o co jest poproszony.
Oli