15

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'
Ehab AlBadawy
  • 3,065
  • 4
  • 19
  • 31
  • The error you get points to invalid file path. Can you double-check? Preferably verify with absolute path. – Lukasz Tracewski May 27 '18 at 13:42
  • I checked that, still getting the same error. This file I think it is coming from the audiotools lib itself which is need as a dependency or something like that, don't have any file with that name! – Ehab AlBadawy May 27 '18 at 18:15
  • Also it will be great if there is something else other than audiotools to load m4a audio files. – Ehab AlBadawy May 27 '18 at 18:16

1 Answers1

14

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

from pydub import AudioSegment
audio = AudioSegment.from_file('file.m4a')
Steven Kryskalla
  • 14,179
  • 2
  • 40
  • 42
Dan Erez
  • 1,364
  • 15
  • 16