Raspberry Pi Voice Changer: Zbuduj projekt głosu w kieszeni
Zmiennik głosu Raspberry Pi otwiera całą kategorię projektów, które byłyby niepraktyczne na standardowym komputerze - budowy kasków, głosy rekvizytów robotów, maszyny do gier retro z dźwiękiem postaci i autonomiczne urządzenia cosplay działające całkowicie z baterii USB. Ten przewodnik obejmuje wszystko, od początkowej konfiguracji sprzętu na Pi 4 i Pi 5, poprzez działającą zmianę głosu Python używającą PyAudio, librosa, Sox i wiązań rubberband, aż do kompletnych instruktażów projektów dla trzech popularnych budów. Na koniec będziesz mieć funkcjonalny potok i wyraźne zrozumienie kompromisów opóźnienia i jakości na każdym etapie.
TL;DR
- Raspberry Pi 4 lub 5 może uruchamiać przesunięcie wysokości w czasie rzeczywistym i efekty głosu robota przy użyciu PyAudio, librosa i pyrubberband.
- Mikrofon USB + wyjście audio USB lub HDMI - żaden przewód analogowy nie jest wymagany do działającego zestawu.
- Budowy kasku cosplay, retro rekwizyty audio do gier i zestawy głosu robota działają na bezgłownym Pi uruchomiającym usługę systemd.
- Cel opóźnienia: 20-40 ms jest osiągalny na 44100 Hz z rozmiarami bufora 512-1024 próbek.
- W przypadku użytku Discord/przesyłania strumieniowego na Windows dedykowane narzędzie takie jak VoxBooster jest szybsze do skonfigurowania i daje mniejsze opóźnienie.
- Stos Python opisany tutaj dotyczy również desktopów Linux - zobacz zmiennik głosu dla Linux dla tego kąta.
Sprzęt, którego potrzebujesz: Pi 4, Pi 5 i akcesoria
Raspberry Pi 4 vs Pi 5 do przetwarzania głosu
Wybór modelu Pi określa, które efekty głosu są praktyczne w czasie rzeczywistym.
| Feature | Raspberry Pi 4 (4 GB) | Raspberry Pi 5 (4/8 GB) |
|---|---|---|
| CPU | Cortex-A72 @ 1.8 GHz | Cortex-A76 @ 2.4 GHz |
| Real-time pitch shift | Tak, komfortowo | Tak, z przesunięciem |
| Librosa STFT (real-time) | Granica przy małych buforach | Tak |
| Neural voice conversion | Nie (za powolne) | Możliwe przy zmniejszonej jakości |
| Power draw (active) | ~3–5 W | ~5–8 W |
| Idle in helmet build | Dobrze | Dobrze, działa nieco cieplej |
| Price (approx.) | $55 | $80 |
W przypadku większości budów cosplay i rekvizytów, Pi 4 z 2 GB lub 4 GB RAM jest wystarczający. Pi 5 daje ci przesunięcie dla bardziej złożonych łańcuchów DSP lub zdolność do uruchamiania lokalnie małego modelu głosu ONNX. Pi Zero 2W pracuje w bardzo prostych efektach tylko wysokości, ale jego jednordzeniowa wydajność czyni go zawodnym dla wieloetapowych łańcuchów DSP.
Wybór mikrofonu USB
Każdy mikrofon udostępniający standardowy interfejs USB Audio Class (UAC 1.0 lub 2.0) będzie działać na Raspberry Pi OS bez instalacji sterownika.
Rekomendowane opcje:
- Fifine K669B - kompaktowy, zasilany z magistrali, kardioidalny, poniżej 30 dolarów. Pasuje do obudowy kasku.
- Blue Snowball iCE - szersze odbieranie, dobre tłumienie hałasu, standardowa obsługa Linuksa.
- Samson Go Mic - forma clipa, przydatna dla budów strojów, gdzie przestrzeń jest ograniczona.
- Generyczny mikrofon USB lapel - najtańsza opcja. Jakość dźwięku jest ograniczona, ale akceptowalna dla efektów robota/zniekształcenia, gdzie jakość źródła ma mniej znaczenia.
Unikaj mikrofonów, które reklamują “USB tylko dla Windows” lub wymagają towarzyszącego oprogramowania - zazwyczaj używają zastrzeżonych deskryptorów USB, które nie wyliczają się prawidłowo na Linuksie.
Opcje wyjścia audio
- Adapter audio USB (dongle DAC) - najprostsza opcja, podłącza się obok mikrofonu USB. Wybierz jeden z wyjściem słuchawek 3.5 mm.
- Audio HDMI - działa od razu dla budów kasku podłączonych do wyświetlacza lub odbiornika AV.
- Głośnik Bluetooth - dodaje 50-150 ms dodatkowego opóźnienia ze stosu Bluetooth. Akceptowalne dla głosów rekvizytów, gdzie synchronizacja z ruchem warg nie jest krytyczna; nie świetnie do konwersacji w czasie rzeczywistym.
- DAC I2S HAT (np. HiFiBerry DAC+ Zero) - najlepsza jakość dźwięku, najmniejsze opóźnienie, ale wymaga konfiguracji nakładki kernela.
W przykładach w tym przewodniku używamy mikrofonu USB + adaptera audio USB, ponieważ jest to najłatwiejsze do powielenia i nie wymaga żadnej nakładki drzewa urządzeń.
Konfiguracja początkowa: Raspberry Pi OS i konfiguracja ALSA
Instalacja Raspberry Pi OS
Użyj Raspberry Pi OS Lite (64-bit) dla bezgłowych budów lub Raspberry Pi OS Desktop, jeśli chcesz interfejsu graficznego do rozwoju. Błysk do karty SD za pomocą Raspberry Pi Imager i włącz SSH w zaawansowanych ustawieniach imager.
Po pierwszym uruchomieniu:
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-dev portaudio19-dev libsndfile1-dev sox rubberband-cli
Identyfikowanie urządzeń audio
aplay -l # lists playback devices
arecord -l # lists capture devices
Typowy wynik z mikrofonem USB + DAC USB pokaże je jako card 1 i card 2 obok wbudowanego dźwięku bcm2835. Zanotuj numery karty i urządzenia - będą ci potrzebne do input_device_index i output_device_index PyAudio.
Ustawianie domyślnych urządzeń ALSA
Utwórz lub edytuj /etc/asound.conf:
pcm.!default {
type asym
playback.pcm "plughw:2,0"
capture.pcm "plughw:1,0"
}
ctl.!default {
type hw
card 2
}
Zastąp numery karty, aby pasować do danych wyjściowych aplay -l / arecord -l. Test za pomocą arecord -d 5 test.wav && aplay test.wav.
Zmiennik głosu Python: podstawowy potok
Instalacja zależności Python
pip3 install pyaudio numpy librosa sounddevice pyrubberband
Jeśli pyaudio nie powiedzie się w budowie, upewnij się, że portaudio19-dev jest zainstalowany. Na Pi OS Bookworm może być konieczne zainstalowanie w środowisku wirtualnym:
python3 -m venv voicechanger
source voicechanger/bin/activate
pip install pyaudio numpy librosa sounddevice pyrubberband
Minimalny przesuwnik wysokości w czasie rzeczywistym
Najprostszy działający potok odczytuje ramki audio, stosuje przesunięcie wysokości za pomocą librosa i zapisuje wyjście z powrotem. To jest podstawa, na której buduje się każdy bardziej złożony efekt.
import pyaudio
import numpy as np
import librosa
RATE = 44100
CHUNK = 1024
SEMITONES = 4.0 # positive = higher pitch, negative = lower
p = pyaudio.PyAudio()
stream_in = p.open(format=pyaudio.paFloat32,
channels=1,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
stream_out = p.open(format=pyaudio.paFloat32,
channels=1,
rate=RATE,
output=True,
frames_per_buffer=CHUNK)
print("Voice changer running. Ctrl+C to stop.")
try:
while True:
data = np.frombuffer(stream_in.read(CHUNK, exception_on_overflow=False),
dtype=np.float32)
shifted = librosa.effects.pitch_shift(data, sr=RATE, n_steps=SEMITONES)
stream_out.write(shifted.astype(np.float32).tobytes())
except KeyboardInterrupt:
pass
stream_in.stop_stream()
stream_out.stop_stream()
p.terminate()
Będzie to działać na Pi 4 z CHUNK=1024 około 23 ms opóźnienia przetwarzania na ramkę, plus opóźnienie bufora ALSA. Oczekuj całkowitego opóźnienia tury 40-80 ms w zależności od buforowania urządzenia audio USB.
Przesunięcie wyższej jakości za pomocą pyrubberband
librosa’s pitch_shift wewnętrznie używa phase vocoder, co działa, ale może wytwarzać phasiness na spółgłoskach. Biblioteka rubberband używa bardziej zaawansowanego algorytmu, który lepiej obsługuje przejścia - ten sam silnik używany w korekcji wysokości profesjonalnego DAW.
import pyrubberband as pyrb
# Replace the librosa line with:
shifted = pyrb.pitch_shift(data, RATE, SEMITONES)
pyrubberband wymaga pakietu systemowego rubberband-cli (zainstalowanego w kroku apt powyżej). Wywoła binarny rubberband przez subprocess, co dodaje mały, ale stały narzut. Dla większości aplikacji głosu znaku poprawa jakości jest warta tego.
Efekt głosu robota
Głos robota łączy kilka kroków DSP: umiarkowane przesunięcie wysokości, modulacja pierścieniowa (modulacja amplitudy przez falę nośną sinusoidalną) i krótkie metaliczne pogłosy.
import numpy as np
def robot_voice(audio, rate=44100, mod_freq=60.0, shift_semitones=-2):
# Pitch down slightly for that mechanical quality
import librosa
pitched = librosa.effects.pitch_shift(audio, sr=rate, n_steps=shift_semitones)
# Ring modulation: multiply by a sine wave carrier
t = np.arange(len(pitched)) / rate
carrier = np.sin(2 * np.pi * mod_freq * t)
modulated = pitched * carrier
# Mix dry and wet (50/50)
result = 0.5 * pitched + 0.5 * modulated
# Normalize
peak = np.max(np.abs(result))
if peak > 0:
result /= peak
return result.astype(np.float32)
Dostosuj mod_freq, aby dostroić metaliczny charakter: 40-60 Hz daje niski mechaniczny szum; 80-120 Hz brzmi bardziej jak klasyczny robot science-fiction; 200+ Hz zaczyna brzmieć bardziej jak efekt vokodera.
Używanie Sox dla efektów głosu na Raspberry Pi
Sox (Sound eXchange) to narzędzie przetwarzania audio z wiersza poleceń, które jest dostępne w większości dystrybucji Linux. Obsługuje szeroki zakres efektów głosu poprzez proste flagi i można go wywoływać z Pythona poprzez subprocess lub bibliotekę wrapper pysox.
Zainstaluj pysox
pip3 install sox
Stosowanie efektów Sox z Pythona
Sox przetwarza pliki audio zamiast strumieni w czasie rzeczywistym, co oznacza, że działa najlepiej w potoku, w którym nagrywasz krótki bufor, przetwarzasz go, a następnie odtwarzasz - efektywnie podejście do przesyłania strumieniowego z niskim opóźnieniem z lekkim opóźnieniem bloku.
import sox
import tempfile, os
def apply_sox_effect(input_wav, effect_name, effect_args):
tfm = sox.Transformer()
if effect_name == "pitch":
tfm.pitch(effect_args) # semitones * 100 = cents
elif effect_name == "rate":
tfm.rate(effect_args)
elif effect_name == "reverb":
tfm.reverb(reverberance=effect_args)
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
out_path = f.name
tfm.build(input_wav, out_path)
return out_path
Sox jest bardziej przydatny do budowy zmieniaczki głosu Raspberry Pi ze wzorem push-to-talk - nagranie próbki, zastosowanie efektu, odtworzenie - niż dla prawdziwego przesyłania strumieniowego w czasie rzeczywistym. W przypadku ciągłego przesyłania strumieniowego zmieniającego głos w czasie rzeczywistym, podejście PyAudio + NumPy + librosa jest lepsze.
Przydatne efekty Sox do projektów głosowych
| Effect | Sox Flag | Result |
|---|---|---|
| Pitch shift | pitch +500 | +5 semitones (in cents) |
| Echo/delay | echo 0.8 0.9 500 0.5 | Single 500ms echo |
| Reverb | reverb 80 | Hall-sized reverb |
| Distortion | overdrive 10 | Mild saturation |
| Tempo change | tempo 0.85 | Slower without pitch change |
| Low-pass filter | lowpass 3000 | Telephone voice quality |
| Bandpass | band 1000 500 | CB radio / walkie-talkie |
Budowa projektu: zmiennik głosu kasku cosplay
Jest to jedno z najpopularniejszych zastosowań zmieniaczki głosu Raspberry Pi - kaski do noszenia lub maski, które zmieniają głos osoby na postać. Pomyśl Iron Man, Mandalorian, stormtrooper lub każda postać robota/androida.
Lista komponentów
- Raspberry Pi 4 (2 GB) lub Pi Zero 2W dla małych budów
- Powerbank USB (10 000 mAh do wielogodzinnej pracy)
- Kompaktowy mikrofon USB (Fifine K669B lub generyczny mikrofon USB lapel)
- Mały adapter audio USB (dla wyjścia słuchawek)
- 2× głośnik 3-watowy + mała płyta wzmacniacza klasy D
- Przełącznik przełącznika on/off
- Obudowa kasku/maski wydrukowana 3D lub komercyjna
Okablowanie
- Powerbank → Pi USB-C power input
- Mikrofon USB → Pi USB port
- Adapter audio USB → Pi USB port
- Wyjście słuchawek → płyta wzmacniacza → głośniki zamontowane w kasku
Trzymaj kable USB krótkie (poniżej 30 cm), aby zmniejszyć zakłócenia elektromagnetyczne, które mogą pojawić się jako syk na tanim sprzęcie audio USB.
Skrypt Python do uruchomienia kasku
Utwórz /home/pi/voicechanger/helmet.py z funkcją głosu robota, a następnie utwórz usługę systemd, która ją uruchamia przy starcie:
# /etc/systemd/system/helmet-voice.service
[Unit]
Description=Helmet Voice Changer
After=sound.target
[Service]
User=pi
WorkingDirectory=/home/pi/voicechanger
ExecStart=/home/pi/voicechanger/venv/bin/python helmet.py
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
Włącz za pomocą sudo systemctl enable helmet-voice.service. Pi uruchamia się i uruchamia zmianę głosu w około 15 sekund od włączenia.
Ustawienia głosu postaci
| Character Type | Pitch Shift | Mod Freq | Extra Effect |
|---|---|---|---|
| Robot / android | -3 semitones | 80 Hz | Light reverb |
| Iron Man (JARVIS) | -1 semitone | None | EQ: boost 1-3 kHz, slight compression |
| Stormtrooper | 0 semitones | 100 Hz | Bandpass 500-3000 Hz (walkie-talkie) |
| Darth Vader style | -4 semitones | 40 Hz | Heavy reverb, deep bass boost |
| Alien / creature | +2 semitones | 60 Hz | Ring mod + short echo |
Budowa projektu: retro rekvizyt głosowy do gier
Retro rekwizyty do gier eventowych - pomyśl pudełka głosu postaci gry 8-bitowej, efekty głosu automatu do gier, czy urządzenia wydające dźwięki - to kolejny doskonały case użycia dla zwartej zmieniaczki głosu Raspberry Pi.
Pi Zero 2W w obudowie w kształcie kartridża, uruchomiony z małej baterii LiPo, może wyzwalać krótkie klipy dźwiękowe lub stosować efekty głosu w czasie rzeczywistym. W połączeniu z przyciskiem push-to-talk i małym głośnikiem staje się samodzielnym rekvizytmem, który nie wymaga telefonu ani laptopa. Konfiguracja sprzętu jest podobna do budowy kasku powyżej, ale prostsza: możesz użyć małego przetwornika piezo do prostych efektów lub głośnika 1-watowego do wyjścia głosu. Skrypt Python nasłuchuje naciśnięć przycisku GPIO, aby wyzwolić różne presety głosu. Aby uzyskać inspirację na efekty audio 8-bitowe i retro, zobacz zmiennik głosu 8-bitowy.
Budowa projektu: autonomiczne pudełko głosu robota
Rekvizyt robota na biurko lub postać animatroniczna korzysta z Pi 4 w pudełku, uruchamiającej stałą zmianę głosu, w którą każdy może mówić. Konfiguracja jest prosta:
- Mikrofon USB w pozycji odboru omnidirektycjonej (lub skieruj go na miejsce, gdzie stoją ludzie)
- Zawsze włączony skrypt Python (usługa systemd)
- Wyjście audio USB do przenośnego głośnika Bluetooth lub głośnika przewodowego z wzmacniaczem
- Opcjonalna animacja LED lub servo za pomocą GPIO, aby ożywić robota, gdy poziom audio przekracza próg
Animacja LED/servo wyzwolona poziomem audio to popularne dodatek. PyAudio zapewnia poziom audio bezpośrednio z RMS każdego bufora:
rms = np.sqrt(np.mean(data**2))
is_speaking = rms > THRESHOLD # set THRESHOLD by experiment
Podłącz boolean is_speaking do wyjścia GPIO i masz robota, który “otwiera usta”, gdy ktoś mówi do niego.
Optymalizacja opóźnienia dla zmiany głosu w czasie rzeczywistym
Opóźnienie to główne wyzwanie inżynieryjne w jakiejkolwiek zmieniarce głosu w czasie rzeczywistym, Pi lub inny. Ludzkie postrzeganie rozbieżności synchronizacji warg staje się zauważalne około 50 ms i rozprasza powyżej 80 ms. W przypadku aplikacji tylko audio (brak wideo), opóźnienie do 150 ms jest tolerowane; do rozmowy, poniżej 50 ms czuje się naturalnie.
Źródła opóźnienia na Raspberry Pi
| Source | Typical Value | Reducible? |
|---|---|---|
| ALSA input buffer | 10-30 ms | Yes, reduce buffer size |
| Python processing (librosa, 1024 samples) | 23 ms | Yes, reduce chunk size |
| ALSA output buffer | 10-30 ms | Yes |
| USB audio roundtrip overhead | 5-15 ms | Partially |
| Bluetooth audio (if used) | 50-150 ms | No — avoid for real-time |
Porady dostrajania
- Zmniejsz CHUNK: Przejście od 2048 do 512 próbek zmniejsza opóźnienie przetwarzania z 46 ms do 12 ms na 44100 Hz. Kosztem jest więcej wywołań zwrotnych Pythona na sekundę, co zwiększa obciążenie procesora.
- Użyj sounddevice zamiast PyAudio: Biblioteka
sounddevicema czystszą integrację ALSA na Linuksie i często osiąga mniejsze opóźnienie bez underrunów bufora. - Unikaj librosa.load() wewnątrz wywołania zwrotnego: Wszystkie ustawienia (częstotliwość próbkowania, parametry modelu) muszą mieć miejsce przed rozpoczęciem wywołania zwrotnego audio.
- Ustaw gubernatora CPU na wydajność:
sudo cpufreq-set -g performanceuniemożliwia Pi dławienie procesora w trakcie strumienia. - Użyj przewodowego adaptera audio USB: Bluetooth dodaje 50-150 ms. Audio USB przewodowe dodaje tylko 5-15 ms.
Zmiennik głosu Raspberry Pi vs oprogramowanie dedykowane
Jeśli Twoim ostatecznym celem jest zmiana głosu dla Discord, czatu w grach, Twitch’a lub aplikacji Windows, warto być jasnym, gdzie projekt Pi pasuje do dedykowanego narzędzia Windows.
| Scenario | Raspberry Pi (Python) | Windows Dedicated Software |
|---|---|---|
| Cosplay helmet / wearable prop | Ideal | Not applicable |
| Tabletop robot prop | Ideal | Not applicable |
| Retro gaming prop / standalone | Ideal | Not applicable |
| Discord / game chat on Windows PC | Workaround (USB audio loopback) | Much simpler |
| Twitch / YouTube stream voice | Possible with JACK routing | VoxBooster or similar is simpler |
| AI voice conversion quality | Limited (Pi compute) | Much better (GPU/CPU on PC) |
| Latency on PC | 40-80 ms on Pi | Under 10 ms on modern PC |
| Setup time | Hours | Minutes |
| Cost | $55-$80 (Pi alone) | Subscription or one-time |
Dla każdego, kto buduje rekvizyt lub odzież do noszenia, Pi jest naprawdę właściwym narzędziem i ten przewodnik daje ci kompletny punkt wyjścia. Dla każdego, kto tu dotarł, szukając zmieniaczki głosu Discord lub przesyłania strumieniowego i przypadkiem wylądował na tutorialu Pi - zamiast tego spójrz na opcję Windows. VoxBooster tworzy wirtualny mikrofon bezpośrednio na grafie audio Windows, przetwarza z opóźnieniem poniżej 10 ms i zajmuje około pięciu minut do skonfigurowania. Możesz także popatrzeć na zmiennik głosu dla Linux, jeśli Twoja maszyna przesyłająca strumieniowo działa na Linuksie zamiast Windows.
W przypadku praktycznych projektów, które w ogóle nie dotyczą Raspberry Pi, samouczek zmieniaczki głosu Audacity obejmuje manipulację wysokością offline, a zabawki zmieniaczki głosu i rekwizyty obejmuje opcje sprzętu wbudowanego dla cosplay.
W przypadku projektów opartych na mikrokontrolerze z jeszcze mniejszymi czynnikami form, zobacz zmiennik głosu Arduino - podejście jest inne (Arduino obsługuje prostsze, analogowe efekty), ale przypadki użycia pokrywają się w budowaniu rekvizytów.
Często zadawane pytania
Czy Raspberry Pi może uruchomić zmianę głosu w czasie rzeczywistym?
Tak. Raspberry Pi 4 lub 5 ma wystarczającą moc procesora do uruchamiania lekkiego przesunięcia wysokości za pomocą PyAudio i Sox z opóźnieniem 20-40 ms. Konwersja głosu neuronowego AI jest bardziej wymagająca i wymaga albo Pi 5, albo oflodowanego kroku wnioskowania, ale podstawowe efekty wysokości, formantu i głosu robota działają komfortowo w czasie rzeczywistym na Pi 4.
Jaki mikrofon USB działa najlepiej z Raspberry Pi do zmiany głosu?
Dowolny mikrofon USB, który ujawnia standardowy interfejs USB Audio Class (UAC), będzie działać bez instalacji dodatkowych sterowników na Raspberry Pi OS. Popularne wybory to Blue Snowball iCE, Fifine K669B i Samson Go Mic. Unikaj mikrofonów, które wymagają zastrzeżonych sterowników Windows - nie będą działać na Linuksie.
Jakie biblioteki Python są mi potrzebne do zmiany głosu Raspberry Pi?
Podstawowy stos to PyAudio (I/O audio), NumPy (matematyka macierzy) i albo librosa (analiza spektralna i przesunięcie wysokości) lub pysox (powiązania Sox) do transformacji. W przypadku przesunięcia wysokości o jakości gumki zainstaluj pyrubberband plus pakiet systemowy rubberband-cli. SoundDevice jest czystszą alternatywą dla PyAudio dla ALSA na Linuksie.
Jak mogę zmniejszyć opóźnienie w zmieniarce głosu Python na Raspberry Pi?
Użyj małych rozmiarów bufora audio (512 lub 1024 próbek na 44100 Hz daje 12-23 ms). Przetwarzaj w krótkich nakładających się ramkach z oknem Hanna. Unikaj librosa’s load() wewnątrz wywołania zwrotnego audio - wstępnie oblicz parametry na zewnątrz. Sox przez subprocess dodaje narzut potoku; preferuj biblioteki w procesie dla najmniejszego opóźnienia.
Czy mogę używać zmieniaczki głosu Raspberry Pi do budowy cosplay lub rekvizytów?
Absolutnie. Pi Zero 2W lub Pi 4 pasuje wewnątrz kasku lub obudowy rekvizytów, zasilane baterią USB. Podłącz mikrofon USB wewnątrz kasku, uruchom małą głośnikę lub wyjście audio Bluetooth i uruchom skrypt zmieniarki głosu Python przy starcie za pomocą usługi systemd. Cała jednostka może działać bezgłownie bez klawiatury lub ekranu.
Jaka jest różnica między przesunięciem wysokości a konwersją głosu na Raspberry Pi?
Przesunięcie wysokości zmienia częstotliwość podstawową sygnału audio, na przykład podwyższając lub obniżając wysokość muzyczną. Konwersja głosu zastępuje akustyczne cechy jednego głosu innymi za pomocą modeli uczenia maszynowego. Przesunięcie wysokości działa w czasie rzeczywistym na dowolnym Pi 4; konwersja głosu wymaga bardziej wymagającego wnioskowania i działa najlepiej na Pi 5 lub za pomocą akceleratora USB, takiego jak Google Coral.
Czy VoxBooster działa na Raspberry Pi?
Nie. VoxBooster to aplikacja desktopowa Windows 10/11 i działa na sprzęcie x86-64. W przypadku projektów Linux lub Raspberry Pi potoki oparte na Pythonie z PyAudio, librosa i rubberband to właściwe podejście. Jeśli Twoim celem końcowym jest konfiguracja Discord lub przesyłania strumieniowego na maszynie Windows, VoxBooster jest prostszą i mniej opóźniającą się opcją.
Wnioski
Zmiennik głosu Raspberry Pi to jeden z najbardziej satysfakcjonujących osadzonych projektów audio, które możesz zbudować - sprzęt jest tani, ekosystem Python dla DSP audio jest dojrzały, a wyniki końcowe wahają się od funkcjonalnych budów rekvizytów do naprawdę imponujących instalacji interaktywnych. Podstawowy potok (PyAudio → przetwarzanie NumPy → PyAudio out) dostanie cię do biegania w mniej niż godzinę. Dodanie pyrubberband podnosi jakość zauważalnie, a budowanie wszystko do usługi systemd sprawia, że cała rzecz uruchamia się automatycznie jak urządzenie konsumenckie.
Pi 4 trafia na limit z ciężką konwersją głosu neuronowego, ale dla przesunięcia wysokości, modulacji pierścieniowej, głosu robota i efektów znaku ma więcej niż wystarczającą siłę. Jeśli przerosnęliśmy Pi, ten sam kod Python działa na dowolnej maszynie Linux - i koncepcje bezpośrednio przenoszą się do zrozumienia, co narzędzia dedykowane takie jak VoxBooster robią pod spodem, gdy osiągają opóźnienie poniżej 10 ms na Windows z pełną konwersją głosu AI.
Zbuduj kask. Uruchom robota. Wyciągnij rekvizyt na następnej konwencji.
Pobierz VoxBooster - bezpłatna 3-dniowa wersja próbna dla Windows, bez wymaganej karty kredytowej.