From: Guillaume Pellerin Date: Mon, 7 Jul 2014 22:29:37 +0000 (+0200) Subject: cleanup, add pdfs X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=d9cef46ff06d87351fd290918b674ed132bc8fd1;p=telemeta-doc.git cleanup, add pdfs --- diff --git a/.gitignore b/.gitignore index b7d129f..fe54a62 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ *.tex~ *.toc *.vrb - +*.loc diff --git a/Conferences/2014_EcoAc/Telemeta_EcoAcoustics_2014_06.pdf b/Conferences/2014_EcoAc/Telemeta_EcoAcoustics_2014_06.pdf new file mode 100644 index 0000000..c477fa4 Binary files /dev/null and b/Conferences/2014_EcoAc/Telemeta_EcoAcoustics_2014_06.pdf differ diff --git a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.pdf b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.pdf index 3188b52..4b3c0ff 100644 Binary files a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.pdf and b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.pdf differ diff --git a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.tex b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.tex index 01676be..174b73c 100644 --- a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.tex +++ b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07.tex @@ -76,145 +76,154 @@ \newcommand{\curl}[1]{ \color{rouge}\underline{\url{#1}} } -\title[TimeSide]{TimeSide, an open web audio processing framework} +\title[TimeSide, open web audio processing framework]{ + TimeSide\\ + An open web audio processing framework + } -\author{Guillaume Pellerin\inst{1}} +%\author{Guillaume Pellerin\inst{1}} -\institute[Parisson]{ +\author[G. Pellerin, T. Fillon, P. Brossier]{ + Guillaume Pellerin\inst{1}, + Thomas Fillon\inst{1,2}, + Paul Brossier\inst{1}, +} + + +\institute[Parisson/UPMC]{% \inst{1}% - Parisson, Paris, France\\ -\vskip1ex + Parisson, Paris, France + \and% + \inst{2}% + LAM, Institut Jean Le Rond d'Alembert, UPMC Univ. Paris 06, UMR CNRS 7190 \begin{center} - \includegraphics[width=.3\linewidth]{img/parisson_logo_FINALE_com.pdf} + \includegraphics[height=0.6cm]{img/parisson_logo_FINALE_com.pdf} + \hfill + \includegraphics[width=0.3\textwidth]{img/logo_telemeta_1-1.pdf} + \hfill + \includegraphics[height=0.6cm]{img/upmc.png} \end{center} } -\date[SoundSoftware 2014 - 08/07/2014]{SoundSoftware 2014\\ \emph{3rd Workshop on Software and Data for Audio and Music Research}\\Queen Mary University of London - 08/07/2014} +\date[SoundSoftware Workshop - 8/07/2014]{SoundSoftware Workshop - 8/07/2014\\ +\includegraphics[width=0.5\paperwidth]{img/soundsoftware_ac_uk_subtitle_transparent.png}} + \begin{document} \frame{\titlepage} - - \section[Table of contents]{} \frame{\frametitle{Table of contents} \tableofcontents } -\section{Overview} +\section{The Telemeta Project} \subsection{Goals} -\frame{\frametitle{Main goals} -\vspace{-1cm} -\center{\includegraphics[width=4cm]{img/logo_telemeta_1-1.pdf}} -\vspace{0.5cm} -\begin{itemize} - \item \alert{Archive}, \alert{preserve} and \alert{scale} big music data and related metadata - \item \alert{Play} audio and read metadata \alert{synchronously} - \item \alert{Index} and \alert{share} music data through a \alert{collaborative} web app - \item \alert{Link} music data to various \alert{ontologies} and \alert{external services} - \item \alert{Manage} \alert{workflow} rules (access, copyrights) easily through time - \item \alert{On demand audio processing} through a \alert{modular architecture} -\end{itemize} -} -\subsection{History} -\frame{\frametitle{History of the project} -\begin{itemize} - \item \alert{2006}: definition of the goals (open source web audio collaborative platform) - \item \alert{2007}: first partner: french Research Center of Ethnomusicology (CREM) - \item \alert{2007 - 2009}: technical specifications, definition of the DB migrator - \item \alert{2008}: prototype development - \item \alert{2008 - 2010}: workflow and format specifications - \item \alert{2011}: development, final migration and release of \alert{Telemeta 1.0} to the CREM for production : \dchref{http://archives.crem-cnrs.fr} - \item \alert{2011 - 2014}: collaborative indexing, more development, massive data imports... -\end{itemize} -} - -% \subsection{CREM's database} -% \frame{\frametitle{CREM's database (2014)} -% \begin{itemize} -% \item -% \item \alert{2007}: first partner: french Research Center of Ethnomusicology (CREM) -% \item \alert{2007 - 2009}: technical specifications, definition of the DB migrator -% \item \alert{2008}: prototype development -% \item \alert{2008 - 2010}: workflow and format specifications -% \item \alert{2011}: development, final migration and release of \alert{Telemeta 1.0} to the CREM for production : \dchref{http://archives.crem-cnrs.fr} -% \item \alert{2011 - 2014}: collaborative indexing, more development, massive data imports... -% \end{itemize} -% } +\begin{frame}\footnotesize +\frametitle{The Telemeta Project} + + \begin{columns} + \begin{column}{0.5\linewidth} + \includegraphics[width=4cm]{img/logo_telemeta_1-1.pdf} + \end{column} + \begin{column}{0.5\linewidth} + \colorbox{yellow!50}{\textbf{\url{http://telemeta.org/}}} + \end{column} + \end{columns} + \begin{block}{Main goals} + \begin{itemize} + \item \alert{Archive}, \alert{preserve} and \alert{manage} large + audio database and related metadata + \item \alert{Play} audio data and \alert{read} metadata + \alert{synchronously} + \item \alert{Process} audio data \alert{on demand} through a + \alert{modular architecture} (no pre-processing needed) + \item \alert{Index} and \alert{share} audio data through a + \alert{collaborative} web app + \item \alert{Link} audio data to various \alert{ontologies}, + external \alert{services} and related \alert{multimedia files} + \item \alert{Manage} users, share and access rules, copyrights + easily through time + \end{itemize} + \end{block} + \begin{block}<2>{History of the project} + \begin{itemize} + \item \alert{2006}: Define objectives = \emph{open source web + audio collaborative platform} + \item \alert{2007}: First partner: french Center for Research in + Ethnomusicology (CREM) + \item \alert{2011}: Release of \alert{Telemeta 1.0} and + deployment of the ``\emph{Sound archives of the CNRS + - Musée de l'Homme}'' \dchref{http://archives.crem-cnrs.fr} + \item \alert{2013 - 2014}: Provide audio processing capabilities through the DIADEMS project + \end{itemize} + \end{block} + +\end{frame} -% \begin{frame} -% \frametitle{CREM items} -% \begin{center} -% \includegraphics[width=0.8\textwidth]{img/crem_items.png} -% \end{center} -% \end{frame} +\subsection{CREM's platform} +\begin{frame} + \frametitle{CREM's platform} + \begin{center} + \includegraphics[width=\textwidth]{img/shots/CREM_2014_1.png} + \end{center} +\end{frame} +\begin{frame}\frametitle{Telemeta - Web UI} + \vspace{-0.25cm} + \begin{center} + \includegraphics[width=12cm]{img/shots/telemeta_eng.png} + \end{center} + \tiny{\url{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1976_011_003_08/}} +\end{frame} -\subsection{Technologies} -\frame{\frametitle{Technologies} -\begin{center} -\large{100\% 0pen Source!} -\end{center} -\begin{itemize} - \item \chref{http://python.org}{Python} : smart object oriented language \\ - \item \chref{http://djangoproject.com}{Django} : high-level web MVC framework \\ +\subsection{Technologies \& Key features} +\frame{\frametitle{Telemeta - Technologies \& Key features} +\footnotesize +\begin{block}{Technologies \alert{$\longrightarrow$ 100\% 0pen Source!}} + \begin{itemize} + \item GNU / Linux : applications, libraries and kernel + \item \chref{http://python.org}{Python} (cool and smart object oriented language with web and scientific libraries), \chref{http://djangoproject.com}{Django} (web platform, \chref{http://gstreamer.freedesktop.org/}{GStreamer} (multimedia framework) + \item MySQL, PostgreSQL, others : relational databases \item \chref{https://github.com/yomguy/TimeSide}{TimeSide} : open web audio processing framework - \item \chref{http://gstreamer.freedesktop.org/}{GStreamer} : open source multimedia framework - \item MySQL, PostgreSQL, others : relational databases \\ - \item GNU / Linux : applications, libraries and kernel \\ \end{itemize} - -} - -\subsection{Features} -%\frame{\tableofcontents[currentsection]} -\frame{\frametitle{Key features} - \begin{itemize} - \item \alert{Pure HTML5} web user interface including dynamical forms - and smart workflows - \item \alert{On the fly} audio analyzing, transcoding and metadata - embedding in various formats - \item \alert{Social editing} with \alert{semantic ontologies}, smart workflows, - realtime tools, human or automatic \alert{annotations and - segmentations} - \item \alert{User management} with individual desk, playlists, profiles - and access rights - \item \alert{High level search engine} (geolocation, instruments, ethnic groups, etc...) - \item \alert{Data providers} : DublinCore, OAI-PMH, RSS, XML, JSON and other - \item \alert{Multi-language} support (now english and french) - \end{itemize} +\end{block} +\begin{block}{Key features} + \begin{itemize} + \item \alert{Pure HTML5} web user interface including dynamical + forms and smart workflows + \item \alert{On the fly} audio analyzing, transcoding and metadata + embedding in various formats + \item \alert{Social editing} with \alert{semantic ontologies}, smart + workflows, realtime tools, human or automatic \alert{annotations + and segmentations} + \item \alert{User management} with individual desk, playlists, + profiles and access rights + \item \alert{High level search engine} (geolocation, instruments, + ethnic groups, etc...) + \item \alert{Data providers} : DublinCore, OAI-PMH, RSS, XML, JSON + and other + \item \alert{Multi-language} support (now english and french) + \end{itemize} +\end{block} } -\section{Framework} - \subsection{Architecture} -\frame{\frametitle{Architecture} +\frame{\frametitle{Telemeta - Architecture} \begin{center} \pgfimage[width=8cm]{img/TM_arch} \end{center} } - -\section{Telemeta Web User Interface} -\begin{frame}\frametitle{Telemeta Web User Interface} - \vspace{-0.25cm} - \begin{center} - \includegraphics[width=12cm]{img/shots/telemeta_eng.png} - \end{center} - \tiny{\url{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1976_011_003_08/}} -\end{frame} - - -\section{Related projects} -\frame{\tableofcontents[currentsection]} +\section{Goals} \begin{frame} - \frametitle{TimeSide : open web audio processing framework}%\scriptsize + \frametitle{TimeSide - Goals}%\scriptsize \begin{block}{Server side - TimeSide Engine} \begin{itemize} \item \alert{Do} asynchronous and fast audio processing with Python, @@ -222,7 +231,7 @@ \item \alert{Analyze} audio content with state-of-the-art audio feature extraction libraries (Aubio, Yaafe, Vamp (experimental), \item \alert{Organize}, serialize and save analysis metadata through various formats, \item \alert{Draw} various fancy waveforms, spectrograms and other cool graphers, - \item \alert{Transcode} audio data in var\_ious media formats and stream them through web apps, + \item \alert{Transcode} audio data in various media formats and stream them through web apps, \end{itemize} \end{block} @@ -240,68 +249,34 @@ \end{block} \end{frame} -\begin{frame} - \frametitle{TimeSide - Architecture} - \begin{center} - \includegraphics[width=0.8\textwidth]{img/timeside_schema_v3.pdf} - \end{center} -\end{frame} -\begin{frame} - \frametitle{TimeSide Engine} - \begin{center} - \includegraphics[width=0.95\textwidth]{img/TimeSide_pipe.pdf} - \end{center} - \begin{block}{Process Pipe} - \begin{itemize} - \item On-the-fly audio processing by simultaneous processors (decoder, encoders, analyzers, graphers) - \item Use of \emph{Gstreamer} for audio decoding and encoding \end{itemize} - \end{block} -\end{frame} +\section{Use cases} -\begin{frame} - \frametitle{Analyzer Result} - \begin{minipage}{0.4\linewidth} - \begin{block}{Result types: \\\emph{time mode} x \emph{data mode}} - \begin{itemize} - \item Data modes: - \begin{itemize} - \item \alert<2-5>{Label} - \item \alert<6-9>{Value} - \end{itemize} +\subsection{General} - \item Time modes: - \begin{itemize} - \item \alert<2,6>{Global} - \item \alert<3,7>{Event} - \item \alert<4,8>{Segment} - \item \alert<5,9>{Framewise} - \end{itemize} - \end{itemize} - \end{block} - \end{minipage} - \begin{minipage}{0.55\linewidth} - \begin{itemize} - \item ID Metadata - \item Audio Metadata - \item Data object - \begin{itemize} - \item<2-5> Label - \item<2-5> Label Metadata (label, label\_id, ...) - \item<6-9> Value - \item<3-4,7-8> Time - \item<4,8> Duration - \item<5,9> Frame Metadata (sample rate, blocksize, stepsize) - \end{itemize} - \item Parameters - \end{itemize} - \end{minipage} +\frame{\frametitle{Use cases} + \begin{block}{Usages} + \begin{itemize} + \item Analyze large music audio datasets on demand over a robust and scalable platform + \item Share audio data and metadata with experts to make them collaborate in editing, processing and discovering + \item Build large statistical campaigns and vizualizations from ontologies, geographic data and sounds + \item Scale the audio data through the web (URL indexes) + \end{itemize} + \end{block} + \begin{block}<2>{Applications} + \begin{itemize} + \item Realtime bioacoustical monitoring system over internet (needs hardware) + \item Biodiversity studies + \item Development and test of new species detection algorithms on large and historical datasets + \end{itemize} + \end{block} +} -\end{frame} +\subsection{The DIADEMS project} \frame{\frametitle{The DIADEMS project} \begin{itemize} \item \chref{http://www.irit.fr/recherches/SAMOVA/DIADEMS/fr/welcome/&cultureKey=en}{DIADEMS} : Description, Indexation, Access to Sound and Ethnomusicological Documents @@ -365,98 +340,237 @@ } -\section{Development and contact informations} -%\frame{\tableofcontents[currentsection]} -\frame{\frametitle{Development} -\begin{block}{Links} - \begin{itemize} - \item \dchref{http://telemeta.org} - \item \dchref{https://github.com/yomguy/Telemeta/} - \item \dchref{https://github.com/yomguy/TimeSide/} - \end{itemize} -\end{block} -\begin{block}{Team} +\section{Architecture} + +\begin{frame} + \frametitle{TimeSide - Architecture} + \begin{center} + \includegraphics[width=0.8\textwidth]{img/timeside_schema_v3.pdf} + \end{center} +\end{frame} + +\subsection{Engine} + +\begin{frame} + \frametitle{TimeSide - Engine} + \begin{center} + \includegraphics[width=0.95\textwidth]{img/TimeSide_pipe.pdf} + \end{center} + \begin{block}{Process Pipe} \begin{itemize} - \item Guillaume Pellerin - \item Thomas Fillon - \item Paul Brossier - \item Riccardo Zaccarelli - \item Maxime Lecoz - \item David Doukan - \end{itemize} -\end{block} -\begin{block}{Licence} -\chref{http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html}{CeCILL v2.1} (GPL v2 compatible) -\end{block} + \item On-the-fly audio processing by simultaneous processors (decoder, encoders, analyzers, graphers) + \item Use of \emph{Gstreamer} for audio decoding and encoding \end{itemize} + \end{block} +\end{frame} + + +\subsection{Processors} + +\frame{\frametitle{Processors (plugins)} + \begin{block}{Decoders} + \begin{itemize} + \item FileDecoder + \item ArrayDecoder + \item LiveDecoder + \end{itemize} + \end{block} + + \begin{block}<2>{Encoders} + \begin{itemize} + \item VorbisEncoder + \item WavEncoder + \item Mp3Encoder + \item FlacEncoder + \item AacEncoder + \item WebMEncoder + \item OpusEncoder + \item AudioSink + \end{itemize} + \end{block} } +\frame{\frametitle{Processors (plugins)} + \begin{block}{Analyzers} + \begin{itemize} + \item AubioTemporal + \item AubioPitch + \item AubioMfcc + \item AubioMelEnergy + \item AubioSpecdesc + \item Yaafe + \item Spectrogram + \item Waveform + \item VampSimpleHost + \item IRITSpeechEntropy + \item IRITSpeech4Hz + \item OnsetDetectionFunction + \item LimsiSad + \end{itemize} + \end{block} +} -\frame{\frametitle{Development - Lessons from a 7 year old project} -\begin{itemize} -\item Simplicity is better than complexity (a Python developer rule) -\item Modularity is only accessible with a flexible language -\item Models and objects are more important than technologies -\item A good workflow is defined by the users themselves through feedback and revisions -\item Prototyping is a crucial part of the development process -\item A good platform should rely on standards, not on formats -\item The Open Source ecosystem gives some tremendous possibilities to scale a platform project -\end{itemize} +\frame{\frametitle{Processors (plugins)} + \begin{block}{Graphers} + \begin{itemize} + \item Waveform + \item WaveformCentroid + \item WaveformTransparent + \item WaveformContourBlack + \item WaveformContourWhite + \item SpectrogramLog + \item SpectrogramLinear + \item Display.aubio\_pitch.pitch + \item Display.odf + \item Display.waveform\_analyzer + \item Display.irit\_speech\_4hz.segments + \end{itemize} + \end{block} } -\frame{\frametitle{Development - TODO list} -\begin{block}{TimeSide} - \begin{itemize} - \item Tiny web server (django) - \item Process task manager - \item Full HTML5 zooming player (+ annotations, segmentations, etc..) - \item Analyzer parameters (+ interface) - \item Improve Vamp plugins support (Vamp python host ?) - \item Add more automatic segmentation and classification tools to support various semantic ontologies (cf. thesaurus) - \item Add more music analysis tools to support Ethnomusicological research - \item Add automatic similarity analysis tools (inside a song or between sound items) - \item Enhance analysis result displays to send to Telemeta - \item \dchref{https://github.com/yomguy/TimeSide/issues} - \end{itemize} -\end{block} +\subsection{Analyzer Result} +\begin{frame} + \frametitle{Analyzer Result} + \begin{block}{Result types: \\\emph{time mode} x \emph{data mode}} + \begin{columns} + \begin{column}{0.35\linewidth} + \begin{itemize} + \item Data modes: + \begin{itemize} + \item \alert<2-5>{Label} + \item \alert<6-9>{Value} + \end{itemize} + \item Time modes: + \begin{itemize} + \item \alert<2,6>{Global} + \item \alert<3,7>{Event} + \item \alert<4,8>{Segment} + \item \alert<5,9>{Framewise} + \end{itemize} + \end{itemize} + \end{column} + \begin{column}{0.50\linewidth}\footnotesize + \begin{exampleblock}<2->{\footnotesize Result Container}\scriptsize + \begin{itemize} + \item ID Metadata + \item Audio Metadata + \item Parameters + \item Data object + \begin{itemize}\scriptsize + \item<2-5> Label + \item<2-5> Label Metadata ({\tiny label, label\_id, ...}) + \item<6-9> Value + \item<3-4,7-8> Time + \item<4,8> Duration + \item<5,9> Frame Metadata ({\tiny sample rate, blocksize, + stepsize}) + \end{itemize} + + \end{itemize} + \end{exampleblock} + + \end{column} + \end{columns} + + \end{block} + \begin{block}<10>{Export} + \begin{itemize} + \item Serialization: HDF5, JSON, YAML, XML + \item Display: \emph{Ad hoc} rendering methods (depending on time and data modes) + \end{itemize} + \end{block} +\end{frame} +\begin{frame} +\frametitle{Analyzer result examples} +\includegraphics<1>[width=\linewidth]{img/results/IRIT_Speech4Hz.png} +\includegraphics<2>[width=\linewidth]{img/results/SOLO_DUOdetection.png} + +\end{frame} +\section{Demos} + +\frame{\frametitle{Documentation and demos} + \begin{block}{Links} + \begin{itemize}\small + \item \chref{http://files.parisson.com/timeside/doc/}{Official documentation} + \item \chref{http://nbviewer.ipython.org/github/thomasfillon/Timeside-demos/tree/master/}{Notebooks} + \item \chref{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1960_003_001_07/}{Online example 1} + \item \chref{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1976_011_003_08/}{Online Example 2} + \item \chref{http://diadems.telemeta.org/archives/collections/?page=275&}{DIADEMS datasets} + \end{itemize} + \end{block} } -\frame{\frametitle{Development - TODO list} +\section{ToDo lists} + +\frame{\frametitle{ToDo lists} +\footnotesize \begin{block}{Telemeta} \begin{itemize} - \item Update code to support Django new Class based views - \item Rewrite geolocation services - \item Public and enhanced user playlists - \item Smart breadcrumbs - \item Better interactions with TimeSide + %\item Update code to support Django new Class based views + \item Update web framework (DJANGO) and geolocation services + %\item Smart breadcrumbs + %\item Better interactions with TimeSide \item Enhance user interface (full HTML 5 + web audio API) - \begin{itemize} + \begin{itemize}\footnotesize \item For annotations and segmentations in a collaborative manner \item Provide import capabilities and feedback loop between manual and automatic annotations \item Fancy displays of automatic analysis results (zoomable + synchronized with audio) \item Add a User interface to control and tune the analysis parameters + \item Add public and enhanced user playlists \end{itemize} \item More documentation - \item \dchref{http://telemeta.org/report/1} + \end{itemize} +\end{block} + +\begin{block}<2>{TimeSide} + \begin{itemize} + \item Tiny web server based on Django (done) + \item Process task manager (done) + %\item Full HTML5 zooming player (+ annotations, segmentations, etc..) + %\item Analyzer parameters (+ interface) + %\item Improve Vamp plugins support (Vamp python host ?) + \item Add more audio \& acoustic analysis tools for automatic analysis + \item Add more automatic segmentation and classification tools to support various semantic ontologies (cf. thesaurus) + + %\item Add automatic similarity analysis tools (inside a song or between sound items) + %\item Enhance analysis result displays to send to Telemeta + %\item \dchref{https://github.com/yomguy/TimeSide/issues} \end{itemize} \end{block} } +\section{Lessons} + +\frame{\frametitle{Lessons learned} +\begin{block}{Lessons learned from a 7 years old project} +\begin{itemize} +\item Simplicity is better than complexity (\alert{KISS}) +\item \alert{Modularity} is only accessible with a flexible language (thanks Python!) +\item \alert{Models} and \alert{Objects} are more important than Technologies +\item A good \alert{workflow} is defined by the users themselves through \alert{feedback} and constant revisions +\item \alert{Prototyping} is a crucial part of the development process +\item A good platform relies on \alert{standards}, not on formats +\item The \alert{Open Source} ecosystem gives some \alert{tremendous} possibilities to develop, deploy and scale any platform project +\end{itemize} +\end{block} +} \frame{\frametitle{The End} \begin{center} - \large{Thank you!} + \large{Thank you!}\\ + \large{We are looking for new collaborations\\ for large scale audio processing use cases. Let's keep in touch!} \vspace{0.25cm} \begin{block}{Links} - \begin{itemize} + \begin{itemize}\small + \item \chref{http://github.com/yomguy/TimeSide}{github.com/yomguy/TimeSide} \item \chref{http://telemeta.org}{telemeta.org} \item \chref{https://twitter.com/telemeta/}{@telemeta} \end{itemize} \end{block} - \begin{block}{Contact} - \begin{itemize} + \begin{block}{Contact me} + \begin{itemize}\small \item \chref{mailto:guillaume@parisson.com}{guillaume@parisson.com} \item \chref{https://twitter.com/yomguy/}{@yomguy} \item \chref{https://github.com/yomguy/}{github.com/yomguy/} @@ -467,43 +581,5 @@ \end{center} } -% BONUS - -\begin{frame}[fragile] - \begin{block}{TimeSide - Github repository} - \begin{center}\scriptsize - \colorbox{yellow!50}{\bf \hskip3ex - \url{https://github.com/yomguy/TimeSide/} \hskip3ex } - \end{center} - - \begin{itemize} - \item 3 main branches: master, dev, diadems - \end{itemize} - \end{block} - \begin{block}{Installation} -\url{https://github.com/yomguy/TimeSide\#install} - \begin{itemize} - \item Installation des dépendances : -\begin{lstlisting}[language=bash, basicstyle=\tiny] -$ echo "deb http://debian.parisson.com/debian/ stable main" | -$ sudo tee -a /etc/apt/sources.list -$ echo "deb-src http://debian.parisson.com/debian/ stable main" | sudo tee -a /etc/apt/sources.list -$ sudo apt-get update -$ sudo apt-get install git -$ sudo apt-get build-dep python-timeside -\end{lstlisting} - - \item Installation depuis le dépôt \emph{Github} : -\begin{lstlisting}[language=bash, basicstyle=\tiny] -$ git clone https://github.com/yomguy/TimeSide.git -$ cd TimeSide -$ git checkout dev -$ export PYTHONPATH=$PYTHONPATH:`pwd` -$ python tests/run_all_tests -\end{lstlisting} -\end{itemize} -\end{block} -\end{frame} - \end{document} \ No newline at end of file diff --git a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.pdf b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.pdf deleted file mode 100644 index 90ba4cf..0000000 Binary files a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.pdf and /dev/null differ diff --git a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.tex b/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.tex deleted file mode 100644 index 5ca8ea8..0000000 --- a/Workshops/SoundSoftware_2014/TimeSide_SoundSoftware_2014_07_G.tex +++ /dev/null @@ -1,585 +0,0 @@ -\documentclass[10pt, final, hyperref, table]{beamer} -\mode - - - %\usepackage[english]{babel} % "babel.sty" -% \usepackage{french} % "french.sty" -% \usepackage{franglais} % "franglais.sty" (a defaut) - \usepackage{times} % ajout times le 30 mai 2003 - -%% -------------------------------------------------------------- -%% CODAGE DE POLICES ? -%% Si votre moteur Latex est francise, il est conseille -%% d'utiliser le codage de police T1 pour faciliter la césure, -%% si vous disposez de ces polices (DC/EC) -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{eurosym} - - -%% ============================================================== -%\usepackage{graphicx} -\usepackage{amsmath,amsfonts} -%\usepackage[table]{xcolor} -\usepackage{subfigure} -\usepackage{fancybox} - -\usepackage{multicol} -\usepackage{wrapfig} -\usepackage{listings} -\usepackage{xcolor} -\usepackage{multimedia} % For playing sound - -\usepackage{hyperref} -% Define hyperlinks color -\definecolor{links}{HTML}{2A1B81} -\hypersetup{colorlinks,linkcolor=,urlcolor=links} - -\usetheme{Madrid} -\setbeamercovered{transparent} - - -% telemeta red -\definecolor{telemetaRed}{rgb}{0.41568, 0.01176, 0.02745} % #6A0307 -\usecolortheme[rgb={0.41568, 0.01176, 0.02745}]{structure} - -%\setbeamercolor{frametitle}{bg=telemetaRed} -% Display a grid to help align images -%\beamertemplategridbackground[1cm] - -%We will get the normal bibliography style (number or text instead of icon) by including the following code -\setbeamertemplate{bibliography item}[text] -\setbeamerfont{caption}{size=\footnotesize} -% listings settings -\definecolor{lstComments}{rgb}{0,0.6,0} -\definecolor{lstBkgrd}{rgb}{0.95,0.95,1} -\lstset{% - language=Python, % the language of the code - frame=single, % adds a frame around the code - frameround=tttt, - commentstyle=\color{lstComments},% comment style - backgroundcolor=\color{lstBkgrd}, % choose the background color - basicstyle=\tiny, % the size of the fonts that are used for the code - stringstyle=\ttfamily, % typewriter type for strings - keywordstyle=\color{blue}, % keyword style - showstringspaces=false, % underline spaces within strings only -} - - -\definecolor{rouge}{rgb}{1.0,0,0} -\newcommand{\chref}[2]{ - \href{#1}{\color{rouge}\underline{#2}} -} -\newcommand{\dchref}[1]{ - \href{#1}{\color{rouge}\underline{#1}} -} -\newcommand{\curl}[1]{ - \color{rouge}\underline{\url{#1}} -} -\title[TimeSide, open web audio processing framework]{ - TimeSide\\ - An open web audio processing framework - } - -%\author{Guillaume Pellerin\inst{1}} - -\author[G. Pellerin, T. Fillon, P. Brossier]{ - Guillaume Pellerin\inst{1}, - Thomas Fillon\inst{1,2}, - Paul Brossier\inst{1}, -} - - -\institute[Parisson/UPMC]{% - \inst{1}% - Parisson, Paris, France - \and% - \inst{2}% - LAM, Institut Jean Le Rond d'Alembert, UPMC Univ. Paris 06, UMR CNRS 7190 - \begin{center} - \includegraphics[height=0.6cm]{img/parisson_logo_FINALE_com.pdf} - \hfill - \includegraphics[width=0.3\textwidth]{img/logo_telemeta_1-1.pdf} - \hfill - \includegraphics[height=0.6cm]{img/upmc.png} - \end{center} -} - -\date[SoundSoftware Workshop - 8/07/2014]{SoundSoftware Workshop - 8/07/2014\\ -\includegraphics[width=0.5\paperwidth]{img/soundsoftware_ac_uk_subtitle_transparent.png}} - - -\begin{document} -\frame{\titlepage} -\section[Table of contents]{} -\frame{\frametitle{Table of contents} -\tableofcontents -} - -\section{The Telemeta Project} -\subsection{Goals} - -\begin{frame}\footnotesize -\frametitle{The Telemeta Project} - - \begin{columns} - \begin{column}{0.5\linewidth} - \includegraphics[width=4cm]{img/logo_telemeta_1-1.pdf} - \end{column} - \begin{column}{0.5\linewidth} - \colorbox{yellow!50}{\textbf{\url{http://telemeta.org/}}} - \end{column} - \end{columns} - \begin{block}{Main goals} - \begin{itemize} - \item \alert{Archive}, \alert{preserve} and \alert{manage} large - audio database and related metadata - \item \alert{Play} audio data and \alert{read} metadata - \alert{synchronously} - \item \alert{Process} audio data \alert{on demand} through a - \alert{modular architecture} (no pre-processing needed) - \item \alert{Index} and \alert{share} audio data through a - \alert{collaborative} web app - \item \alert{Link} audio data to various \alert{ontologies}, - external \alert{services} and related \alert{multimedia files} - \item \alert{Manage} users, share and access rules, copyrights - easily through time - \end{itemize} - \end{block} - \begin{block}<2>{History of the project} - \begin{itemize} - \item \alert{2006}: Define objectives = \emph{open source web - audio collaborative platform} - \item \alert{2007}: First partner: french Center for Research in - Ethnomusicology (CREM) - \item \alert{2011}: Release of \alert{Telemeta 1.0} and - deployment of the ``\emph{Sound archives of the CNRS - - Musée de l'Homme}'' \dchref{http://archives.crem-cnrs.fr} - \item \alert{2013 - 2014}: Provide audio processing capabilities through the DIADEMS project - \end{itemize} - \end{block} - -\end{frame} - - -\subsection{CREM's platform} -\begin{frame} - \frametitle{CREM's platform} - \begin{center} - \includegraphics[width=\textwidth]{img/shots/CREM_2014_1.png} - \end{center} -\end{frame} - -\begin{frame}\frametitle{Telemeta - Web UI} - \vspace{-0.25cm} - \begin{center} - \includegraphics[width=12cm]{img/shots/telemeta_eng.png} - \end{center} - \tiny{\url{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1976_011_003_08/}} -\end{frame} - - - -\subsection{Technologies \& Key features} -\frame{\frametitle{Telemeta - Technologies \& Key features} -\footnotesize -\begin{block}{Technologies \alert{$\longrightarrow$ 100\% 0pen Source!}} - \begin{itemize} - \item GNU / Linux : applications, libraries and kernel - \item \chref{http://djangoproject.com}{Django} (web platform), \chref{http://python.org}{Python} (cool and smart object oriented language with web and scientific libraries), \chref{http://gstreamer.freedesktop.org/}{GStreamer} (multimedia framework) - \item MySQL, PostgreSQL, others : relational databases - \item \chref{https://github.com/yomguy/TimeSide}{TimeSide} : open web audio processing framework -\end{itemize} -\end{block} -\begin{block}{Key features} - \begin{itemize} - \item \alert{Pure HTML5} web user interface including dynamical - forms and smart workflows - \item \alert{On the fly} audio analyzing, transcoding and metadata - embedding in various formats - \item \alert{Social editing} with \alert{semantic ontologies}, smart - workflows, realtime tools, human or automatic \alert{annotations - and segmentations} - \item \alert{User management} with individual desk, playlists, - profiles and access rights - \item \alert{High level search engine} (geolocation, instruments, - ethnic groups, etc...) - \item \alert{Data providers} : DublinCore, OAI-PMH, RSS, XML, JSON - and other - \item \alert{Multi-language} support (now english and french) - \end{itemize} -\end{block} -} - - -\subsection{Architecture} -\frame{\frametitle{Telemeta - Architecture} - \begin{center} - \pgfimage[width=8cm]{img/TM_arch} - \end{center} -} - - -\section{Goals} - -\begin{frame} - \frametitle{TimeSide - Goals}%\scriptsize -\begin{block}{Server side - TimeSide Engine} - \begin{itemize} - \item \alert{Do} asynchronous and fast audio processing with Python, - \item \alert{Decode} audio frames from ANY format into numpy arrays, - \item \alert{Analyze} audio content with state-of-the-art audio feature extraction libraries (Aubio, Yaafe, Vamp (experimental), - \item \alert{Organize}, serialize and save analysis metadata through various formats, - \item \alert{Draw} various fancy waveforms, spectrograms and other cool graphers, - \item \alert{Transcode} audio data in various media formats and stream them through web apps, - \end{itemize} - -\end{block} -\begin{block}{Client side - TimeSide UI} - \begin{itemize} - \item \alert{Playback} and \alert{interact} on demand through a smart high-level HTML5 extensible player, - \item \alert{Index}, \alert{tag} and \alert{organize semantic metadata} \\ -(see \href{http://telemeta.org/}{Telemeta} which embeds TimeSide). -\hfill $\vcenter{\hbox{\includegraphics[width=0.2\textwidth]{img/logo_telemeta_1-1.pdf}}}$ - % \begin{flushright} - % \includegraphics[width=0.2\textwidth]{../../Common/img/logo_telemeta_1-1.pdf}\\ - % \colorbox{yellow!50}{\textbf{\url{http://telemeta.org/}}} - %\end{flushright} - \end{itemize} -\end{block} -\end{frame} - - -\section{Use cases} - -\subsection{General} - -\frame{\frametitle{Use cases} - - \begin{block}{Usages} - \begin{itemize} - \item Analyze large music audio datasets on demand over a robust and scalable platform - \item Share audio data and metadata with experts to make them collaborate in editing, processing and discovering - \item Build large statistical campaigns and vizualizations from ontologies, geographic data and sounds - \item Scale the audio data through the web (URL indexes) - \end{itemize} - \end{block} - - \begin{block}<2>{Applications} - \begin{itemize} - \item Realtime bioacoustical monitoring system over internet (needs hardware) - \item Biodiversity studies - \item Development and test of new species detection algorithms on large and historical datasets - \end{itemize} - \end{block} -} - - - -\subsection{The DIADEMS project} -\frame{\frametitle{The DIADEMS project} -\begin{itemize} - \item \chref{http://www.irit.fr/recherches/SAMOVA/DIADEMS/fr/welcome/&cultureKey=en}{DIADEMS} : Description, Indexation, Access to Sound and Ethnomusicological Documents - \item Granted by ANR : french national research agency (ANR-12-CORD-0022) - \item 3 years, 8 partners, 850 k\euro - \item Apply and test MIR algorithms on large scale ethnomusicological data - \item Define some high level interfaces to find new ways of explorations in large complex musical corpus - \item New modes of collaboration between human science and computer science laboratories and researchers - \item Define the \chref{http://files.parisson.com/telemeta/telemeta-doc/DIADEMS/thesaurus/Thesaurus/Thesaurus.html}{vocabulary} describing musical events in the usecase of ethnomusicilogy vs. signal processing - \item \dchref{http://www.irit.fr/recherches/SAMOVA/DIADEMS/fr/welcome/} - \item \dchref{http://diadems.telemeta.org} -\end{itemize} -} - -\frame{\frametitle{DIADEMS - Partners} -\begin{itemize} -\item Sponsors: -\begin{itemize} - \item CNRS - \item Huma-Num (ex TGE Adonis) - \item ANR - \item CREM - \item UPMC - \item Parisson -\end{itemize} - -\vspace{0.25cm} - -\item Partners : -\begin{itemize} -\item IRIT (université Paul Sabatier, Toulouse 3) -\item LIMSI (universités Pierre et Marie Curie (UPMC, Paris 6) et Paris-Sud) -\item LAM (institut Jean Le Rond d'Alembert, UPMC) -\item LABRI (université de Bordeaux) -\item CREM (université Paris Ouest Nanterre La Défense) -\item LESC (université Paris Ouest Nanterre La Défense) -\item Museum d'Histoire Naturelle de Paris -\item Musée du Quai Branly -\end{itemize} - -\end{itemize} - -\begin{center} -\begin{columns}[c] -\column{2.5cm} -\begin{center} -\pgfimage[width=1cm]{img/logo-CNRS}\end{center} -\column{2.5cm} -\begin{center} -\pgfimage[width=2.5cm]{img/Logo-CREM-La.jpg} -\end{center} -\column{2.5cm} -\begin{center} -\pgfimage[width=2.5cm]{img/parisson_logo_200}\end{center} -\column{2cm} -\begin{center} -\pgfimage[width=1.2cm]{img/logo-mnhn}\end{center} -\end{columns} -\end{center} - -} - - - -\section{Architecture} - -\begin{frame} - \frametitle{TimeSide - Architecture} - \begin{center} - \includegraphics[width=0.8\textwidth]{img/timeside_schema_v3.pdf} - \end{center} -\end{frame} - -\subsection{Engine} - -\begin{frame} - \frametitle{TimeSide - Engine} - \begin{center} - \includegraphics[width=0.95\textwidth]{img/TimeSide_pipe.pdf} - \end{center} - \begin{block}{Process Pipe} - \begin{itemize} - \item On-the-fly audio processing by simultaneous processors (decoder, encoders, analyzers, graphers) - \item Use of \emph{Gstreamer} for audio decoding and encoding \end{itemize} - \end{block} -\end{frame} - - -\subsection{Processors} - -\frame{\frametitle{Processors (plugins)} - \begin{block}{Decoders} - \begin{itemize} - \item FileDecoder - \item ArrayDecoder - \item LiveDecoder - \end{itemize} - \end{block} - - \begin{block}<2>{Encoders} - \begin{itemize} - \item VorbisEncoder - \item WavEncoder - \item Mp3Encoder - \item FlacEncoder - \item AacEncoder - \item WebMEncoder - \item OpusEncoder - \item AudioSink - \end{itemize} - \end{block} -} - -\frame{\frametitle{Processors (plugins)} - \begin{block}{Analyzers} - \begin{itemize} - \item AubioTemporal - \item AubioPitch - \item AubioMfcc - \item AubioMelEnergy - \item AubioSpecdesc - \item Yaafe - \item Spectrogram - \item Waveform - \item VampSimpleHost - \item IRITSpeechEntropy - \item IRITSpeech4Hz - \item OnsetDetectionFunction - \item LimsiSad - \end{itemize} - \end{block} -} - -\frame{\frametitle{Processors (plugins)} - \begin{block}{Graphers} - \begin{itemize} - \item Waveform - \item WaveformCentroid - \item WaveformTransparent - \item WaveformContourBlack - \item WaveformContourWhite - \item SpectrogramLog - \item SpectrogramLinear - \item Display.aubio\_pitch.pitch - \item Display.odf - \item Display.waveform\_analyzer - \item Display.irit\_speech\_4hz.segments - \end{itemize} - \end{block} -} - -\subsection{Analyzer Result} -\begin{frame} - \frametitle{Analyzer Result} - \begin{block}{Result types: \\\emph{time mode} x \emph{data mode}} - \begin{columns} - \begin{column}{0.35\linewidth} - \begin{itemize} - \item Data modes: - \begin{itemize} - \item \alert<2-5>{Label} - \item \alert<6-9>{Value} - \end{itemize} - \item Time modes: - \begin{itemize} - \item \alert<2,6>{Global} - \item \alert<3,7>{Event} - \item \alert<4,8>{Segment} - \item \alert<5,9>{Framewise} - \end{itemize} - \end{itemize} - \end{column} - \begin{column}{0.50\linewidth}\footnotesize - \begin{exampleblock}<2->{\footnotesize Result Container}\scriptsize - \begin{itemize} - \item ID Metadata - \item Audio Metadata - \item Parameters - \item Data object - \begin{itemize}\scriptsize - \item<2-5> Label - \item<2-5> Label Metadata ({\tiny label, label\_id, ...}) - \item<6-9> Value - \item<3-4,7-8> Time - \item<4,8> Duration - \item<5,9> Frame Metadata ({\tiny sample rate, blocksize, - stepsize}) - \end{itemize} - - \end{itemize} - \end{exampleblock} - - \end{column} - \end{columns} - - \end{block} - \begin{block}<10>{Export} - \begin{itemize} - \item Serialization: HDF5, JSON, YAML, XML - \item Display: \emph{Ad hoc} rendering methods (depending on time and data modes) - \end{itemize} - \end{block} -\end{frame} -\begin{frame} -\frametitle{Analyzer result examples} -\includegraphics<1>[width=\linewidth]{img/results/IRIT_Speech4Hz.png} -\includegraphics<2>[width=\linewidth]{img/results/SOLO_DUOdetection.png} - -\end{frame} -\section{Demos} - -\frame{\frametitle{Documentation and demos} - \begin{block}{Links} - \begin{itemize}\small - \item \chref{http://files.parisson.com/timeside/doc/}{Official documentation} - \item \chref{http://nbviewer.ipython.org/github/thomasfillon/Timeside-demos/tree/master/}{Notebooks} - \item \chref{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1960_003_001_07/}{Online example 1} - \item \chref{http://archives.crem-cnrs.fr/archives/items/CNRSMH_I_1976_011_003_08/}{Online Example 2} - \item \chref{http://diadems.telemeta.org/archives/collections/?page=275&}{DIADEMS datasets} - \end{itemize} - \end{block} -} - - -\section{ToDo lists} - -\frame{\frametitle{ToDo lists} -\footnotesize -\begin{block}{Telemeta} - \begin{itemize} - %\item Update code to support Django new Class based views - \item Update web framework (DJANGO) and geolocation services - %\item Smart breadcrumbs - %\item Better interactions with TimeSide - \item Enhance user interface (full HTML 5 + web audio API) - \begin{itemize}\footnotesize - \item For annotations and segmentations in a collaborative manner - \item Provide import capabilities and feedback loop between manual and automatic annotations - \item Fancy displays of automatic analysis results (zoomable + synchronized with audio) - \item Add a User interface to control and tune the analysis parameters - \item Add public and enhanced user playlists - \end{itemize} - \item More documentation - \end{itemize} -\end{block} - -\begin{block}<2>{TimeSide} - \begin{itemize} - \item Tiny web server based on Django (done) - \item Process task manager (done) - %\item Full HTML5 zooming player (+ annotations, segmentations, etc..) - %\item Analyzer parameters (+ interface) - %\item Improve Vamp plugins support (Vamp python host ?) - \item Add more audio \& acoustic analysis tools for automatic analysis - \item Add more automatic segmentation and classification tools to support various semantic ontologies (cf. thesaurus) - - %\item Add automatic similarity analysis tools (inside a song or between sound items) - %\item Enhance analysis result displays to send to Telemeta - %\item \dchref{https://github.com/yomguy/TimeSide/issues} - \end{itemize} -\end{block} -} - -\section{Lessons} - -\frame{\frametitle{Lessons learned} -\begin{block}{Lessons learned from a 7 years old project} -\begin{itemize} -\item Simplicity is better than complexity (\alert{KISS}) -\item \alert{Modularity} is only accessible with a flexible language (thanks Python!) -\item \alert{Models} and \alert{Objects} are more important than Technologies -\item A good \alert{workflow} is defined by the users themselves through \alert{feedback} and constant revisions -\item \alert{Prototyping} is a crucial part of the development process -\item A good platform relies on \alert{standards}, not on formats -\item The \alert{Open Source} ecosystem gives some \alert{tremendous} possibilities to develop, deploy and scale any platform project -\end{itemize} -\end{block} -} - - -\frame{\frametitle{The End} - \begin{center} - \large{Thank you!}\\ - \large{We are looking for new collaborations\\ for large scale audio processing use cases. Let's keep in touch!} - \vspace{0.25cm} - \begin{block}{Links} - \begin{itemize}\small - \item \chref{http://github.com/yomguy/TimeSide}{github.com/yomguy/TimeSide} - \item \chref{http://telemeta.org}{telemeta.org} - \item \chref{https://twitter.com/telemeta/}{@telemeta} - \end{itemize} - \end{block} - \begin{block}{Contact me} - \begin{itemize}\small - \item \chref{mailto:guillaume@parisson.com}{guillaume@parisson.com} - \item \chref{https://twitter.com/yomguy/}{@yomguy} - \item \chref{https://github.com/yomguy/}{github.com/yomguy/} - \item \chref{https://plus.google.com/u/0/+GuillaumePellerin/posts}{+GuillaumePellerin} - \item \chref{http://fr.linkedin.com/in/guillaumepellerin}{fr.linkedin.com/in/guillaumepellerin} - \end{itemize} - \end{block} - \end{center} -} - - -\end{document} \ No newline at end of file