Ce sera le premier message. J'utilise généralement C # er [^ 1] pour développer une application de bureau robuste, mais je travaillerai sur python pour diffuser mes connaissances. l'extrémité avant? Pouvez-vous le manger? Python est assez frais car je vis dans le monde.
Ma fille, qui est pleine de MMD [^ 2], se rend un par un sur le site de conversion pour convertir le format de fichier et télécharge le fichier, de sorte qu'il ne peut être complété qu'avec mon propre PC sans ce genre de problèmes. J'ai décidé de faire un convertisseur. Cette fois, ce sera la conversion MP3 → WAV à utiliser avec MMD.
Si vous google avec "python mp3 wav", il semble que vous puissiez le convertir en utilisant une bibliothèque appelée pydub, donc je l'ai présenté immédiatement.
> pip install pydub
Eh bien, avez-vous besoin de ffmpeg? Je vois, est-ce une bibliothèque de type wrapper de ffmpeg? Je pense que je devrais choisir et écrire moi-même la commande ffmpeg, mais c'est une bonne idée, je vais donc m'occuper de pydub.
mp32wav.py
import pydub
import os
import sys
if __name__ == "__main__":
mp3 = sys.argv[1]
print(f"IN:{mp3}")
dirname = os.path.dirname(mp3)
baseName = os.path.splitext(os.path.basename(mp3))[0]
wav = os.path.join(dirname, f"{baseName}.wav")
print(f"OUT:{wav}")
audio = pydub.AudioSegment.from_mp3(mp3)
audio.export(wav, format='wav')
Je voulais juste remplacer l'extension, mais il s'est avéré être un code désordonné. En substance ...
C'est juste ça.
Je me demande pourquoi C # er devrait écrire ʻos.path ... même s'il est écrit comme ʻimport os
.
Eh bien, j'ai pu confirmer que cela fonctionne comme prévu, mais même si je mets ce mp32wav.py sur le bureau, il n'est pas possible de D & D, alors préparez un fichier batch.
mp32wav.bat
@echo off
py mp32wav.py %1
Créez un raccourci pour ce fichier de commandes sur votre bureau et D & D le .mp3 que vous souhaitez convertir pour générer un .wav dans le même dossier que le fichier d'origine. Toutes nos félicitations.
Apparemment, c'est un problème connu, mais si vous lui donnez un nom de fichier qui comprend des espaces pleine largeur, il y sera coupé. Il n'y a pas de problème si vous citez également l'espace demi-largeur. Au moment de D & D, il semble que celui cité soit passé comme argument de ligne de commande, mais dans le cas de l'espace pleine largeur, cela ne fonctionne pas bien. J'écrirai le code de test en C #
argsTest.cs
static void Main(string[] args)
{
Console.WriteLine($"len={args.Length}");
foreach (var i in Enumerable.Range(0, args.Length))
{
Console.WriteLine(args[i]);
}
Console.ReadLine();
}
De plus, si vous appelez cela à partir d'un fichier batch et mangez "aaa bbb.txt" (espace demi-largeur) et "aaa bbb.txt" (espace pleine largeur)
Espace demi-largeur
len=1
C:\Tmp\aaa bbb.txt
Espace pleine largeur
len=1
C:\Tmp\aaa
Ce sera.
Normalement, les espaces pleine largeur ne sont pas utilisés pour les noms de dossier et les noms de fichier, mais le système d'exploitation autorise de tels noms, et certaines personnes peuvent ne pas être conscientes du tout des espaces demi-largeur et pleine largeur, donc certaines mesures sont nécessaires. Je pense. J'ai dit à ma fille que je ne pouvais utiliser que des espaces demi-largeur pour le nom du dossier et le nom du fichier, et je l'ai évité pour le moment (il n'y a aucun moyen qu'il n'y ait pas de solution de contournement ...) [^ 1]: VB.NET avec C # 7.5 et VB6 2.0 avec 0.5?
Recommended Posts