[PYTHON] Spielen Sie WAVE-Dateien von der WSL ab

Ich habe eine Audiodatei auf WSL generiert und wollte sie über einen Befehl abspielen. Es war übertrieben, den Soundserver auszuführen, deshalb habe ich ein einfaches Programm in Python auf der Windows-Seite erstellt und es über einen Wrapper aufgerufen.

Bibliothek

Im nächsten Artikel finden Sie viele Python-Soundbibliotheken.

Dieses Mal werden wir PlaySound verwenden. Installieren Sie mit pip auf Python auf der Windows-Seite.

Bibliotheksinstallation


py.exe -m pip install playsound

Körper

PlaySound ist einfach zu verwenden, indem Sie einfach den Dateinamen importieren und übergeben.

Die Funktion zum Anzeigen des Namens der wiedergegebenen Datei wurde hinzugefügt, indem mehrere Dateien angegeben wurden. (-P Option)

winplay.py


import sys, playsound
if len(sys.argv) < 2:
    print("usage: %s [-p] sound [...]" % sys.argv[0])
    print("    -p: show file name")
    exit(1)
argp = 2 if sys.argv[1] == "-p" else 1
args = sys.argv[argp:]
argl = len(args)
format = "[%%%dd/%%d] %%s" % len(str(argl))
for i, arg in enumerate(args):
    if argp > 1: print(format % (i + 1, argl, arg))
    playsound.playsound(arg)

WSL

Platzieren Sie wintts.py an einer für Windows sichtbaren Stelle. Schreiben Sie einen einfachen Wrapper wie den folgenden, platzieren Sie ihn an einer beliebigen Stelle in der WSL und fügen Sie das Attribut execute hinzu.

winplay


#!/bin/sh
py.exe 'C:\Skriptspeicherung\winplay.py' "$@"

Sie können es jetzt wie einen WSL-Befehl verwenden.

Anwendungsbeispiel


winplay test.wav
winplay -p *.wav

MP3

MP3 kann vorerst auch abgespielt werden, aber in meiner Umgebung sind einige Phänomene wie eine Unterbrechung der Wiedergabe aufgetreten.

Über den Namen

Ich habe das Präfix win- hinzugefügt, um anzuzeigen, dass es auf der Windows-Seite funktioniert.

Eigentlich habe ich zuerst versucht, die Bibliothek so zu benennen, wie sie abgespielt wird, aber ich habe sie abgebrochen, weil ich vom Import abhängig war.

ähnliche Links

Ähnliche Meinungen zu dieser Methode werden geschrieben.

Wenn Sie jedoch darüber nachdenken, können Sie Windows exe auch über wsl ausführen. Wenn Sie also eine exe haben, die WAV-Dateien abspielen kann, können Sie sie klingen lassen.

Wie dort erwähnt, gibt es eine Möglichkeit, den Soundserver zum Laufen zu bringen.

Recommended Posts

Spielen Sie WAVE-Dateien von der WSL ab
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Übergang von WSL1 zu WSL2
Informationsextraktion aus der EDINET XBRL-Datei
Lesen und verwenden Sie Python-Dateien aus Python
Bringen Sie Dateien in Windows zur WSL
Funken spielen mit WSL Anaconda Jupyter (2)
Extrahieren Sie mit Python Zeichenfolgen aus Dateien