Python kann verwendet werden, um eine Vielzahl von Aufgaben auszuführen. Eine davon ist die Erstellung eines Diktiergeräts. Wir können das Sound - Device- Modul von Python verwenden , um Audio aufzunehmen und abzuspielen. Dieses Modul bietet zusammen mit dem Wavio- oder dem Scipy- Modul die Möglichkeit, aufgenommenes Audio zu speichern.

Installation

  • Soundgerät: Dieses Modul bietet Funktionen zum Abspielen und Aufzeichnen von NumPy-Arrays mit Audiosignalen. Lassen Sie uns installieren Sie es , indem Sie den folgenden Befehl ausführen:
$ pip3 installiere sounddevice
  • Wir können entweder Wavio oder Scipy verwenden , um das aufgenommene Audio im Dateiformat zu speichern . Wir werden beide hier sehen.
  • So installieren Sie wavio:
$ pip3 wavio installieren
  • So installieren Sie scipy :
$ pip3 installiere scipy

Jetzt sind wir mit der Installation der erforderlichen Module fertig. Schreiben wir also den Code.

Einstieg

Importieren Sie zunächst die erforderlichen Bibliotheken.

# erforderliche Bibliotheken importieren
importiere sounddevice als sd
aus scipy.io.wavfile importieren schreiben
wavio als wv importieren

Bevor wir den Rekorder starten, müssen wir einige Variablen deklarieren. Die erste ist die Abtastfrequenz des Audios (in den meisten Fällen sind dies 44100 oder 48000 Bilder pro Sekunde) und die zweite ist die Aufnahmedauer. Wir müssen die Dauer in Sekunden angeben, damit die Aufnahme nach dieser Dauer beendet wird.

Erklären wir sie also auch.



# Abtastfrequenz
Frequenz = 44100
# Aufnahmedauer
Dauer = 5

Jetzt können wir den Rekorder starten. Es wird ein NumPy-Array des aufgenommenen Audios erstellt.

# Starten Sie den Rekorder mit den angegebenen Werten von
# Dauer und Abtastfrequenz
Aufnahme = sd.rec (int (Dauer * Frequenz),
                   Samplerate = Freq, Channels = 2)
# Nehmen Sie Audio für die angegebene Anzahl von Sekunden auf
sd.wait()

Jetzt sind wir mit der Audioaufnahme fertig. Also, lass es uns speichern. Zum Speichern der Audiodatei können wir entweder das Scipy- Modul oder das WAVIO- Modul verwenden. Lassen Sie uns sie einzeln durchgehen.

Scipy verwenden:

Wir werden die Schreibfunktion von scipy.io.wavfile verwenden, um das NumPy-Array in eine Audiodatei zu konvertieren.

# Dadurch wird das NumPy-Array in ein Audio konvertiert
# Datei mit der angegebenen Abtastfrequenz
Schreiben ("Recording0.wav", Freq, Aufnahme)

Verwenden von WAVIO:

Wir können auch die Schreibfunktion aus der WAVIO- Bibliothek verwenden.

# Konvertieren Sie das NumPy-Array in eine Audiodatei
wv.write ("Recording1.wav", Recording, Freq, Sampwidth = 2)

Vollständiger Code:

import sounddevice as sd 
from scipy.io.wavfile import write 
import wavio as wv 
  
freq = 44100
  
duration = 5
  
recording = sd.rec(int(duration * freq),  
                   samplerate=freq, channels=2) 
  
sd.wait() 
  
write("recording0.wav", freq, recording) 
  
wv.write("recording1.wav", recording, freq, sampwidth=2)