Date: Mon, 07 Dec 2020 18:00:00 -0500
<div class="wp-block-jetpack-markdown"><h3>Summary</h3> <p>Technologies for building data pipelines have been around for decades, with many mature options for a variety of workloads. However, most of those tools are focused on processing of text based data, both structured and unstructured. For projects that need to manage large numbers of binary and audio files the list of options is much shorter. In this episode Lynn Root shares the work that she and her team at Spotify have done on the Klio project to make that list a bit longer. She discusses the problems that are specific to working with binary data, how the Klio project is architected to allow for scalable and efficient processing of massive numbers of audio files, why it was released as open source, and how you can start using it today for your own projects. If you are struggling with ad-hoc infrastructure and a medley of tools that have been cobbled together for analyzing large or numerous binary assets then this is definitely a tool worth testing out.</p> <h3>Announcements</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!</li> <li>Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to <a href="https://www.pythonpodcast.com/talkpython?utm_source=rss&utm_medium=rss">pythonpodcast.com/talkpython</a> today and get 10% off the course that will help you find your next level. That’s <a href="https://www.pythonpodcast.com/talkpython?utm_source=rss&utm_medium=rss">pythonpodcast.com/talkpython</a>, and don’t forget to thank them for supporting the show.</li> <li>Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to <a href="https://www.pythonpodcast.com/springboard?utm_source=rss&utm_medium=rss">pythonpodcast.com/springboard</a> today to learn more and give your career a boost to the next level.</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Lynn Root about Klio, an open source pipeline for processing audio and binary data</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by describing what Klio is and how it got started?</li> <li>What are some of the challenges that are unique to processing audio data as compared to text?</li> <li>What use cases does Klio enable?</li> <li>What are some of the alternative options available for working with binary data? <ul> <li>What capabilities were lacking in other solutions that made it worthwhile to build a new system from scratch?</li> </ul> </li> <li>Can you describe the design and architecture of Klio? <ul> <li>What was the motivation for implementing Klio as a Python framework, rather than building on top of the Scio project?</li> </ul> </li> <li>How much of a challenge has it been to interface to the Beam framework from Python? (Java <-> Python impedance mismatch)</li> <li>One of the interesting optimizations in Klio is the option for bottom up execution of a job to avoid processing a given file unless absolutely necessary. What are some of the other useful or interesting capabilities that are built into Klio?</li> <li>What was the motivation and process for releasing Klio as open source?</li> <li>For someone who is building a pipeline with Klio, can you talk through the workflow? <ul> <li>What are the extension and integration points that are exposed?</li> <li>How does Klio handle third party dependencies for a given job?</li> </ul> </li> <li>What are some of the challenges, misunderstandings, or edge cases that users of Klio should be aware of?</li> <li>What are some of the most interesting, unexpected, or challenging lessons that you have learned while building and growing the Klio project?</li> <li>What are some of the most interesting, innovative, or unexpected ways that you have seen Klio used?</li> <li>What do you have planned for the future of the project?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="http://github.com/econchick/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GitHub</a></li> <li><a href="https://twitter.com/roguelynn?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Twitter</a></li> <li><a href="https://www.linkedin.com/in/lynnroot/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://www.python.org/psf/donations/2020-q42020-drive/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PSF Fundraiser</a></li> </ul> </li> <li>Lynn <ul> <li><a href="https://roamresearch.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Roam note-taking tool</a></li> </ul> </li> </ul> <h3>Closing Announcements</h3> <ul> <li>Thank you for listening! Don’t forget to check out our other show, the <a href="https://feeds.fireside.fm/pythonpodcast/rss">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you’ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&utm_medium=rss">pythonpodcast.com/chat</a></li> </ul> <h3>Links</h3> <ul> <li><a href="https://klio.io?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Klio</a> <ul> <li><a href="https://engineering.atspotify.com/2020/11/04/its-all-just-wiggly-air-building-infrastructure-to-support-audio-research/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Announcement Blog Post</a></li> <li><a href="https://docs.klio.io?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Docs</a></li> <li><a href="https://github.com/spotify/klio?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">GitHub</a></li> </ul> </li> <li><a href="https://www.spotify.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Spotify</a></li> <li><a href="https://pyladies.com/locations/sf/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyLadies SF</a></li> <li><a href="https://luigi.readthedocs.io/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Luigi</a></li> <li><a href="https://raml.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">RAML</a></li> <li><a href="https://ramlfications.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ramlfications</a></li> <li><a href="https://interrogate.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Interrogate</a></li> <li><a href="https://beam.apache.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Apache Beam</a></li> <li><a href="https://librosa.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Librosa</a></li> <li><a href="http://people.csail.mit.edu/hubert/pyaudio/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyAudio</a></li> <li><a href="https://pillow.readthedocs.io/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pillow</a> <ul> <li><a href="https://www.pythonpodcast.com/episode-59-pillow-with-alex-clark/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://ffmpeg.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">FFMPeg</a></li> <li><a href="https://imagemagick.org/index.php?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ImageMagick</a></li> <li><a href="https://musicinformationretrieval.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Music Information Retrieval</a></li> <li><a href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36608.pdf?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Machine Hearing</a> <ul> <li><a href="https://www.dataengineeringpodcast.com/audio-analytic-sound-recognition-episode-139/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast Episode</a></li> </ul> </li> <li><a href="https://spotify.github.io/scio/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Scio</a></li> <li><a href="https://azure.microsoft.com/en-us/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Microsoft Azure</a></li> <li><a href="https://cloud.google.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google Cloud Platform</a></li> <li><a href="https://cloud.google.com/dataflow?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google Cloud Dataflow</a></li> <li><a href="https://developers.google.com/protocol-buffers?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Protocol Buffers</a></li> <li><a href="https://spark.apache.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Apache Spark</a></li> <li><a href="https://spark.apache.org/docs/latest/api/python/index.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PySpark</a></li> <li><a href="https://en.wikipedia.org/wiki/Directed_acyclic_graph?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">DAG == Directed Acyclic Graph</a></li> <li><a href="https://ismir.net/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ISMIR Conference</a></li> <li><a href="https://en.wikipedia.org/wiki/Digital_signal_processing?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Digital Signal Processing (DSP)</a></li> <li><a href="https://docs.python.org/3/library/pickle.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Python Pickle</a></li> <li><a href="https://pdfs.semanticscholar.org/83ea/11b45cba0fc7ee5d60f608edae9c1443861d.pdf?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Research paper on separating vocals from instrumentals of a song</a></li> <li><a href="https://www.nytimes.com/interactive/2018/08/09/opinion/do-songs-of-the-summer-sound-the-same.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">New York Times: Why songs of the summer sound the same</a></li> <li><a href="https://github.com/microsoft/Microsoft-Rocket-Video-Analytics-Platform?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Microsoft’s Rocket Platform for video analytics</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fklio-big-data-audio-pipelines-episode-292%2F&action_name=Building+Big+Data+Pipelines+For+Audio+With+Klio+-+Episode+292&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />