Python convertir mp3 en wav avec Pydub
Ok, maintenant je suis coincé dans la conversion de fichiers mp3 en wav. J'ai vu des différentes réponses, mais je crois que je vais aller pour l'un de pydub, je l'ai déjà fait à l'aide de ces quelques lignes
from pydub import AudioSegment
AudioSegment.from_mp3("/input/file.mp3").export("/output/file.wav", format="wav")
mais lorsque j'exécute le code ci-dessus, j'obtiens l'erreur suivante
C:\Python27\lib\site-packages\pydub-0.14.2-py2.7.egg\pydub\utils.py:165: RuntimeWarning: impossible de trouver le ffmpeg ou avconv - défaut ffmpeg, mais peuvent ne pas fonctionner
Traceback (most recent call last):
Fichier "C:/Users/phourlhar/Desktop/VoiceDetector/yeah.py", à la ligne 7, dans
stereo_to_mono()Fichier "C:\Users\phourlhar\Desktop\VoiceDetector\utils.py" ligne 25, dans
stereo_to_monosound = AudioSegment.from_mp3(PROJECT_DIR+'\\files\\rec'+str(c)+'.mp3')
Fichier "build\bdist.win32\egg\pydub\audio_segment.py" de ligne, 346,
from_fileFichier "C:\Python27\lib\subprocess.py", ligne 711, dans init
errread, errwrite)Fichier "C:\Python27\lib\subprocess.py" de ligne, 948, dans _execute_child
startupinfo)WindowsError: [Erreur 2] Le système ne peut pas trouver le fichier spécifié
Je ne sais pas pourquoi il pose cette erreur que je suis très sûr que le fichier existe. Même si j'ai des réponses, ce qui suggère l'installation de ffmpeg, mais je ne sais pas si affectent le déploiement des applications en quelque sorte plus tard
OriginalL'auteur phourxx | 2015-08-18
Vous devez vous connecter pour publier un commentaire.
La
pydub
module utiliseffmpeg
ouavconf
les programmes pour faire la conversion réelle. Donc, vous ne devez installerffmpeg
pour faire ce travail.Mais si vous n'avez pas besoin
pydub
pour quoi que ce soit d'autre, vous pouvez utiliser le haut-subprocess
module d'appeler un convertisseur programme commeffmpeg
comme ceci:Cela nécessite que le ffmpeg binaire est dans un emplacement dans votre $PATH, par la manière.
Modifier: Avec
ffmeg
, vous ne pouvez pas convertir de stéréo à mono, pour autant que je sais. Vous ne pouvez choisir le canal gauche ou droit. Je suppose que ce n'est pas ce que vous voulez.La
sox
programme peut convertir de stéréo à mono:Cela permettra d'échantillonnage de 16 kHz, 8 bits/échantillon, vous donnant de 16 ko/s.
Autant que je sache, vous ne pouvez pas convertir entrée stéréo à mono sortie avec
ffmpeg
. Vous pouvez faire cela avecsox
, voir mise à jour de réponse.merci, serait de vérifier sur le "sox". mais est-il une manière que je pourrais forcer la sortie à 16ko/s mono wav avec sox
Il existe différentes combinaisons de codages (sox
-e
option) et le taux d'échantillonnage (sox-r
en option), qui peut accomplir cela. Veuillez consulter la manuel. Celle qui est appropriée pour votre application est plus que je peux dire. Vous aurez probablement à essayer ce qui fonctionne le mieux pour vous.J'ai mis à jour ma réponse à donner une option évidente pour 16 kb/s.
OriginalL'auteur Roland Smith
Vous devez aller pour pydub, il est un excellent module pour des opérations liées avec les fichiers audio.
NOTE. N'oubliez pas d'installer ffmpeg avant d'utiliser pydub.
Pour obtenir de l'aide concernant l'installation de ffmpeg, vous pouvez utiliser cette lien.
Puis de l'installer pydub juste ouvrez votre invite de commande et tapez
Puis de convertir n'importe quel fichier mp3 en wav suffit d'utiliser pydub comme
En quelque sorte. fichier mémoire au démarrage = io.BytesIO(); son.à l'exportation(fichier mémoire au démarrage, 'wav'); sound=AudioSegment.from_wav(fichier mémoire au démarrage)
OriginalL'auteur Abhishek Rathore