how to load m4a file in python

Ehab AlBadawy picture Ehab AlBadawy · May 25, 2018 · Viewed 11.9k times · Source

Is there an easy way to load m4a sound file in python. I've came across audiotools lib but I'm getting an error while using to_pcm fn

audiotools.open('file.m4a').to_pcm()

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-76-e12405d92ce3> in <module>()
----> 1 audiotools.open(p).to_pcm()

/path/to/m4a.py in to_pcm(self)
    456             stdout=subprocess.PIPE,
    457             stderr=subprocess.DEVNULL if hasattr(subprocess, "DEVNULL") else
--> 458             open(os.devnull, "wb"))
    459         return PCMFileReader(sub.stdout,
    460                              sample_rate=self.sample_rate(),

/path/to/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo,    creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
    705                                 c2pread, c2pwrite,
    706                                 errread, errwrite,
--> 707                                 restore_signals, start_new_session)
    708         except:
    709             # Cleanup if the child failed starting.

/path/to/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite,    c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
   1331                             else:
   1332                                 err_msg += ': ' + repr(orig_executable)
-> 1333                     raise child_exception_type(errno_num, err_msg)
   1334                 raise child_exception_type(err_msg)
   1335 

FileNotFoundError: [Errno 2] No such file or directory: 'faad'

Answer

Dan Erez picture Dan Erez · Oct 1, 2018

Here's how you would do it using the pydub library:

from pydub import AudioSegment
audio = AudioSegment.from_file('file.m4a')