pythonaudiom4a

how to load m4a file in python


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'

Solution

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

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