Il existe deux façons d'obtenir la durée d'un fichier mp3. L'un consiste à utiliser un mutagène et l'autre à utiliser du pysox. Chaque méthode a ses forces et ses faiblesses.
La méthode utilisant le mutagène est plus légère et plus rapide que la méthode utilisant le pysox.
C'est pourquoi mutagen ne vérifie que la balise ID3 du fichier mp3. D'autre part, pysox semble utiliser la CLI Sox pour vérifier le binaire du fichier mp3.
La méthode pysox peut déterminer la durée sans utiliser les informations ID3, c'est-à-dire qu'elle peut reconnaître des fichiers avec des informations ID3 invalides ou des fichiers sans informations ID3. En utilisant pysox, vous pouvez vérifier la durée sans utiliser les informations ID3, c'est-à-dire que vous pouvez détecter la durée du fichier avec des informations ID3 invalides ou du fichier sans informations ID3.
from mutagen.mp3 import MP3
def mutagen_length(path):
try:
audio = MP3(path)
length = audio.info.length
return length
except:
return None
length = mutagen_length(wav_path)
print("duration sec: " + str(length))
print("duration min: " + str(int(length/60)) + ':' + str(int(length%60)))
Note: pysox needs SOX cli.
import sox
def sox_length(path):
try:
length = sox.file_info.duration(path)
return length
except:
return None
length = sox_length(mp3_path)
print("duration sec: " + str(length))
print("duration min: " + str(int(length/60)) + ':' + str(int(length%60)))
Recommended Posts