[PYTHON] Lire des fichiers WAVE à partir de WSL

Je générais un fichier audio sur WSL et je voulais le lire à partir d'une commande. Il était exagéré d'exécuter le serveur audio, j'ai donc créé un programme simple en Python du côté Windows et l'ai appelé via un wrapper.

Bibliothèque

Dans le prochain article, vous trouverez de nombreuses bibliothèques de sons Python.

Cette fois, nous utiliserons playound. Installez avec pip sur Python du côté Windows.

Installation de la bibliothèque


py.exe -m pip install playsound

Corps

PlaySound est facile à utiliser en important et en passant simplement le nom du fichier.

Ajout de la fonction pour afficher le nom du fichier en cours de lecture en spécifiant plusieurs fichiers. (Option -P)

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

Placez wintts.py dans un endroit visible par Windows. Écrivez un wrapper simple comme celui-ci et placez-le là où se trouve le chemin dans WSL et ajoutez l'attribut execute.

winplay


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

Vous pouvez maintenant l'utiliser comme une commande WSL.

Exemple d'utilisation


winplay test.wav
winplay -p *.wav

MP3

Le MP3 peut également être lu pour le moment, mais dans mon environnement, certains phénomènes tels que l'interruption de la lecture se sont produits.

À propos du nom

J'ai ajouté le préfixe win- pour indiquer que cela fonctionne du côté Windows.

En fait, au début, j'ai essayé de nommer la bibliothèque car elle est en cours de lecture, mais je l'ai annulée parce que j'étais accro à l'importation.

Liens connexes

Des opinions similaires à cette méthode sont écrites.

Cependant, si vous y réfléchissez, vous pouvez également exécuter Windows exe à partir de wsl, donc si vous avez un exe qui peut lire des fichiers wav, vous pouvez le faire sonner.

Comme mentionné ici, il existe un moyen de faire fonctionner le serveur audio.

Recommended Posts

Lire des fichiers WAVE à partir de WSL
Lire un fichier audio à partir de Python avec interruption
Transition de WSL1 à WSL2
Extraction d'informations à partir du fichier EDINET XBRL
Lire et utiliser des fichiers Python à partir de Python
Importer des fichiers de Windows vers WSL
Spark play avec WSL anaconda jupyter (2)
Extraire des chaînes de fichiers avec Python