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.
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
Py.exe
se trouve dans le chemin ( C: \ WINDOWS
) du côté Windows, vous pouvez donc l'appeler depuis WSL en ajoutant .exe
.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.
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.
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