Als ich versuchte, mit Raspeye eine Echtzeit-Soundverarbeitung mit pyaudio + scipy + numpy durchzuführen, war viel Zeit und Mühe erforderlich, daher habe ich dies im Artikel zusammengefasst. Dieser Artikel ist ein vorbereitender Teil und bis zu dem Punkt, an dem Python 3.7.6 auf Raspeye installiert ist und numpy, scipy und pyaudio unter dieser Umgebung installiert und verwendet werden können.
Unter Verwendung der in diesem Dokument gepflegten Umgebung werden wir die Software beschreiben, bei der sich die Tonhöhe in Echtzeit mit Raspeye in Python ändert, aber wir werden sie in einem anderen Artikel vorstellen.
NOOBS 3.3.0 Dieses Mal werde ich die Vorgehensweise unmittelbar nach der Neuinstallation von NOOBS 3.3.0 beschreiben.
Installieren Sie die folgenden Bibliotheken usw., wie sie für pyaudio erforderlich sind.
sudo apt-get install portaudio19-dev python-pyaudio libatlas-base-dev
Installieren Sie die folgenden Bibliotheken, um zu vermeiden, dass _ctypes-bezogene Fehler in scipy auftreten (Sie müssen apt-get install ausführen, bevor Sie Python 3.7.6 mit pyenv installieren, das Sie später installieren werden):
sudo apt-get install libffi-dev
Installieren Sie die folgenden Bibliotheken, um pyenv zu installieren:
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev
Führen Sie den folgenden Befehl aus, um pyenv zu installieren:
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Da pyenv nicht so ausgeführt werden kann, wie es ist, fügen Sie den folgenden Inhalt zu ~ / .profile hinzu, um Umgebungsvariablen festzulegen und pyenv zu initialisieren. Der Editor kann beliebig sein. Wenn Sie jedoch den standardmäßig installierten Nano-Editor verwenden möchten, verwenden Sie nano ~ / .profile.
~/.profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Geben Sie für den Nano-Editor den obigen Befehl ein und drücken Sie Strg-O. Sie werden gefragt, ob Sie in die Datei schreiben möchten. Überprüfen Sie den Dateinamen und drücken Sie die Eingabetaste, um zu schreiben. Drücken Sie dann Strg-X, um den Nano-Editor zu verlassen.
Nachdem Sie den obigen Inhalt in ~ / .profie geschrieben haben,
source ~/.profile
Der gerade geschriebene Inhalt (Einstellung der Umgebungsvariablen) wird wiedergegeben. Ob es gut reflektiert wird oder nicht, ist
pyenv --version
Wenn die Versionsinformationen angezeigt werden, ist dies in Ordnung.
Außerdem reicht es aus, source ~ / .profile nur einmal auszuführen (ab dem nächsten Mal wird es automatisch ausgeführt, wenn Sie Raspeye starten und sich anmelden).
Ich verwende pyenv, um Python 3.7.6 zu installieren, aber die Optionen zum Zeitpunkt der Erstellung für Python sind wichtig, daher werde ich das konfigurieren. Insbesondere können Sie den folgenden Inhalt in der Umgebungsvariablen PYTHON_CONFIGURE_OPTS festlegen. Im Fehlerfall schreiben Sie ihn jedoch einmal für alle Fälle in die Datei. Schreiben wir zunächst Folgendes in eine Datei namens setup.sh:
setup.sh
export PYTHON_CONFIGURE_OPTS="--enable-ipv6\
--enable-unicode=ucs4\
--enable-shared\
--with-dbmliborder=bdb:gdbm\
--with-system-expat\
--with-system-ffi\
--with-fpectl"
Wenn Sie in die Datei schreiben können
source setup.sh
Aktualisieren Sie die Umgebungsvariablen. Um zu überprüfen, ob die Umgebungsvariablen korrekt aktualisiert wurden
echo $PYTHON_CONFIGURE_OPTS
Daher ist es in Ordnung, wenn die in setup.sh beschriebenen Inhalte zusammen in einer Zeile angezeigt werden.
Wenn Sie mit den folgenden Schritten fortfahren möchten, reicht es aus, die oben genannten Arbeiten einmal auszuführen. Wenn Sie jedoch die Arbeit hier beenden und morgen usw. fortfahren, schalten Sie die Stromversorgung erneut ein und versuchen Sie es dann erneut über source setup.sh (da die Informationen der eingestellten Umgebungsvariablen beim Ausschalten verloren gehen). ist).
Verwenden Sie pyenv, um eine Python 3.7.6-Umgebung nur unter einem bestimmten Verzeichnis zu erstellen. Erstellen Sie hier ein Verzeichnis mit dem Namen test und erstellen Sie die Umgebung Python 3.7.6 nur in diesem Verzeichnis.
mkdir test
cd test
Führen Sie Python im experimentellen Testverzeichnis aus, damit Python 3.7.6 ausgeführt wird. Installieren Sie zuerst 3.7.6 mit pyenv und konfigurieren Sie dann den Python für die Verwendung in diesem Verzeichnis.
Installieren Sie Python 3.7.6 mit dem folgenden Befehl (es wird einige Zeit dauern):
pyenv install 3.7.6
Wenn Sie es erfolgreich installieren können
pyenv versions
Wenn die Meldung 3.7.6 angezeigt wird, ist sie daher erfolgreich.
Die auf Raspai installierte Standard-Python (oder besser gesagt auf dem gerade installierten Raspbian) ist 2.7.16. Es gibt 2 und 3 Versionen von Python und verwenden Sie Version 3.7.6 im experimentellen Verzeichnis und Version 2.7.16 (die Systemstandardversion) an anderen Stellen.
Der Punkt ist, dass das Testverzeichnis auf 3.7.6 eingestellt ist
pyenv local 3.7.6
Führen Sie den Befehl aus, um den Vorgang abzuschließen.
Wenn Sie Python -V im Testverzeichnis versuchen, wird die Zeichenfolge 3.7.6 angezeigt (wenn sie nicht angezeigt wird, ist die Einstellung fehlgeschlagen). Wenn Sie als Test in ein anderes Verzeichnis wechseln, z. B. in Ihr Ausgangsverzeichnis, und Python -V verwenden, wird 2.7.16 angezeigt.
pip ist ein Python-Paketmanager, der später zum Installieren verschiedener Module verwendet wird. Wenn Sie Python mit pyenv installieren, wird pip möglicherweise auch auf das alte zurückgesetzt. Führen Sie daher für alle Fälle den folgenden Befehl aus, um pip auf dem neuesten Stand zu halten. Führen Sie dazu zwei Befehle aus:
pip install --upgrade pip
Jetzt können Sie die verschiedenen Module installieren! Ich würde das gerne sagen, aber es gibt noch ein Modul, das installiert werden muss, also werde ich es installieren. Nach diesem Schritt installieren wir das Modul mit pip:
pip install pybind11
Nachdem die Installation erfolgreich abgeschlossen wurde
pip install numpy
pip install scipy
pip install pyaudio
Installieren Sie als Ziel dieses Artikels jedes Paket. Wenn dies erfolgreich ist, starten Sie Python als Test und
import numpy
import scipy
import pyaudio
Und stellen Sie sicher, dass jedes Modul problemlos importiert werden kann.
In diesem Dokument wurde gezeigt, wie Numpy und Scipy installiert werden. Die Installation kann etwas mühsam sein. Ich habe auch gezeigt, wie man pyaudio installiert und eine Umgebung vorbereitet, in der mit Raspeye eine Echtzeit-Soundverarbeitung entwickelt werden kann.
Als nächstes möchte ich mit Razzpie in dieser Umgebung einen Echtzeit-Pitch-Shifter erstellen. Da es sich um eine Software handelt, die die Tonhöhe in Echtzeit ändert, wenn Sie Musik usw. eingeben, wird die Tonhöhe verschoben und wiedergegeben, und es handelt sich um eine sehr alberne Musik. Bleib dran.