Scalable audio processing framework written in Python with a RESTful API

Related tags

Audio TimeSide
Overview

TimeSide : scalable audio processing framework and server written in Python

TimeSide is a python framework enabling low and high level audio analysis, imaging, transcoding, streaming and labelling. Its high-level API is designed to enable complex processing on very large datasets of any audio or video assets with a plug-in architecture, a secure scalable backend and an extensible dynamic web frontend.

Use cases

  • Scaled audio computing (filtering, machine learning, etc)
  • Web audio visualization
  • Audio process prototyping
  • Realtime and on-demand transcoding and streaming over the web
  • Automatic segmentation and labelling synchronized with audio events

Goals

  • Do asynchronous and fast audio processing with Python,
  • Decode audio frames from any audio or video media format into numpy arrays,
  • Analyze audio content with some state-of-the-art audio feature extraction libraries like Aubio, Yaafe and VAMP as well as some pure python processors
  • Visualize sounds with various fancy waveforms, spectrograms and other cool graphers,
  • Transcode audio data in various media formats and stream them through web apps,
  • Serialize feature analysis data through various portable formats,
  • Provide audio sources from plateform like YouTube or Deezer
  • Deliver analysis and transcode on provided or uploaded tracks over the web through a REST API
  • Playback and interact on demand through a smart high-level HTML5 extensible player,
  • Index, tag and annotate audio archives with semantic metadata (see Telemeta which embed TimeSide).
  • Deploy and scale your own audio processing engine through any infrastructure

Funding and support

To fund the project and continue our fast development process, we need your explicit support. So if you use TimeSide in production or even in a development or experimental setup, please let us know by:

Thanks for your help!

News

1.0

  • Server refactoring:
    • audio process run on items (REST API track's model)
    • several tools, views, models and serializers
    • REST API's schema on OpenAPI 3 specification and automatic Redoc generation
  • Move core and server from Python 2.7 to 3.7
  • Upgrade Django to 2.2, Django REST Framework to 3.11, Celery to 4.4
  • Add an Aubio based decoder
  • Add core and server processors' versioning and server process' run time
  • Regroup all dependencies on pip requirements removing conda use
  • Add :ref:`provider` as a core API component and as a REST API model
  • Add provider plugins :ref:`deezer-preview`, :ref:`deezer-complete` and :ref:`youtube`
  • Improve server unit testing
  • Add JWT authentication on REST API
  • Various bug fixes
  • Add core, server and workers logging

0.9

  • Upgrade all python dependencies
  • Add Vamp, Essentia, Yaafe, librosa, PyTorch, Tensorflow libs and wrappers
  • Add a few analyzing plugins (Essentia Dissonance, Vamp Constant Q, Vamp Tempo, Vamp general wrapper, Yaafe general wrapper)
  • Add processor parameter management
  • Add processor inheritance
  • Improve HTML5 player with clever data streaming
  • Improve REST API and various serialzers
  • Improve unit testing
  • Various bug fixes

0.8

  • Add Docker support for instant installation. This allows to run TimeSide now on any OS platform!
  • Add Jupyter Notebook support for easy prototyping, experimenting and sharing (see the examples in the doc).
  • Add an experimental web server and REST API based on Django REST Framework, Redis and Celery. This now provides a real web audio processing server with high scaling capabilities thanks to Docker (clustering) and Celery (multiprocessing).
  • Start the development of a new player interface thanks to Angular and WavesJS.
  • Huge cleanup of JS files. Please now use bower to get all JS dependencies as listed in settings.
  • Add metadata export to Elan annotation files.
  • Fix and improve some data structures in analyzer result containers.
  • Many various bugfixes.

0.7.1

  • fix django version to 1.6.10 (sync with Telemeta 1.5)

0.7

  • Code refactoring:
    • Create a new module timeside.plugins and move processors therein: timeside.plugins.decoder,analyzer, timeside.plugins.encoder, timeside.plugins.fx
    • WARNING: to properly manage the namespace packages structure, the TimeSide main module is now timeside.core and code should now be initialized with import timeside.core
    • timeside.plugins is now a namespace package enabling external plugins to be automatically plugged into TimeSide (see for example timeside-diadems). This now makes TimeSide a real plugin host, yeah!
    • A dummy timeside plugin will soon be provided for easy development start.
  • Move all analyzers developped by the partners of the Diadems project to a new repository: timeside-diadems
  • Many fixes for a better processing by Travis-CI
  • Add a dox file to test the docker building continously on various distributions

For older news, please visit: https://github.com/Parisson/TimeSide/blob/master/NEWS.rst

Documentation

Install

Thanks to Docker, Timeside is now fully available as a docker composition ready to work. The docker based composition bundles some powerfull applications and modern frameworks out-of-the-box like: Python, Conda, Numpy, Jupyter, Gstreamer, Django, Celery, Haystack, ElasticSearch, MySQL, Redis, uWSGI, Nginx and many more.

First, install Docker and docker-compose

Then clone TimeSide:

git clone --recursive https://github.com/Parisson/TimeSide.git
cd TimeSide
docker-compose pull

That's it! Now please go to the documentation to see how to use it.

Note

If you need to user TimeSide outside a docker image please refer to the rules of the Dockerfile which is based on a Debian stable system. But we do not provide any kind of free support in this usercase anymore (the dependency list is now huge). To get commercial support in more various usecases, please reach the Parisson dev team.

Sponsors and Partners

  • Parisson
  • CNRS: National Center of Science Research (France)
  • Huma-Num: big data equipment for digital humanities (CNRS, France)
  • CREM: French National Center of Ethomusicology Research (France)
  • Université Pierre et Marie Curie (UPMC Paris, France)
  • ANR: Agence Nationale de la Recherche (France)
  • MNHN : Museum National d'Histoire Naturelle (Paris, France)
  • C4DM : Center for Digital Music, Queen Mary University (London, United Kingdom)
  • NYU Steinhardt : Music and Performing Arts Professions, New York University (New York, USA)
  • IRCAM : IRCAM (Paris, France)

Related projects

  • Telemeta : Open web audio platform
  • Sound archives of the CNRS, CREM and the "Musée de l'Homme" in Paris, France
  • DIADEMS sponsored by the ANR.
  • DaCaRyh, Data science for the study of calypso-rhythm through history
  • KAMoulox Online unmixing of large historical archives
  • NYU+CREM+Parisson : arabic music analysis from the full CREM database
  • WASABI: Web Audio Semantic Aggregated in the Browser for Indexation, sponsored by the ANR

Copyrights

  • Copyright (c) 2019, 2020 IRCAM
  • Copyright (c) 2006, 2020 Guillaume Pellerin
  • Copyright (c) 2010, 2020 Paul Brossier
  • Copyright (c) 2019, 2020 Antoine Grandry
  • Copyright (c) 2006, 2019 Parisson SARL
  • Copyright (c) 2013, 2017 Thomas Fillon
  • Copyright (c) 2016, 2017 Eric Debeir
  • Copyright (c) 2013, 2014 Maxime Lecoz
  • Copyright (c) 2013, 2014 David Doukhan
  • Copyright (c) 2006, 2010 Olivier Guilyardi

License

TimeSide is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

TimeSide is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

Read the LICENSE.txt file for more details.

Comments
  • Problems installing in osx ~

    Problems installing in osx ~ "gobject missing"

    I've been trying to install timeside on my osx machine and I made it pretty far (after cumbersomely installing several dependencies). Ive reached to a point where I can include timeside inside a python script, except now it complains about gobject missing.

    Here is the thrown error:

    import timeside
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "timeside/__init__.py", line 4, in <module>
        import core
      File "timeside/core.py", line 31, in <module>
        import gobject
    ImportError: No module named gobject
    

    I tried brew's libgobject, pygobject and gobject-introspection without any luck… any ideas?

    install 
    opened by vectorsize 27
  • Encoder Streaming ends before reaching the end of the decoded stream

    Encoder Streaming ends before reaching the end of the decoded stream

    Code to reproduce:

    # -*- coding: utf-8 -*-
    
    from timeside.core import *
    from timeside.decoder import FileDecoder
    from timeside.encoder import Mp3Encoder
    
    import sys
    if len(sys.argv) > 1:
        source = sys.argv[1]
    else:
        import os.path
        source= os.path.join (os.path.dirname(__file__),  "../samples/sweep.flac")
    
    decoder = FileDecoder(source)
    
    print "Creating decoder with id=%s for: %s" % (decoder.id(), source)
    decoder.setup()
    
    channels  = decoder.channels()
    print 'channels :', channels
    samplerate = decoder.samplerate()
    #nframes = decoder.nframes()
    
    dest1 = "/tmp/test_filesink.mp3"
    dest2 = "/tmp/test_appsink.mp3"
    f = open(dest2,'w')
    
    streaming=True
    encoder = Mp3Encoder(dest1, streaming=True, overwrite=True)
    encoder.setup(channels=channels, samplerate=samplerate,
                  blocksize=decoder.blocksize(), totalframes=decoder.totalframes())
    while True:
        encoder.process(*decoder.process())
        if streaming:
            f.write(encoder.chunk)
        if encoder.eod:
            break
    
    f.close()
    print encoder.pipe
    
    import os
    dest1_size = os.path.getsize(dest1)
    dest2_size = os.path.getsize(dest2)
    
    print "sizes : %d , %d" % (dest1_size, dest2_size)
    
    assert os.path.getsize(dest1)==os.path.getsize(dest2)
    
    opened by thomasfillon 15
  • WASABI Sandbox: Permission denied on Result delete

    WASABI Sandbox: Permission denied on Result delete

    On sandbox instance @yomguy: While deleting a Result from admin in browser, I got this Permission error since add of pre_delete signal:

    Traceback:
    ...
    File "/usr/local/lib/python3.7/dist-packages/django/dispatch/dispatcher.py" in <listcomp>
      175.             for receiver in self._live_receivers(sender)
    
    File "/srv/lib/timeside/timeside/server/models.py" in result_pre_delete
      936.         os.remove(instance.hdf5.path)
    
    Exception Type: PermissionError at /admin/timeside_server/result/
    Exception Value: [Errno 13] Permission denied: '/srv/media/results/07836d4f-72d0-4a66-a076-f6f06cce572c/ca605c05-0d1e-49c8-92ca-d4f0bd0bac01.hdf5'
    

    Is their a way to give the needed permission on Result's file creation ? Is API's linux user is www-data?

    bug 
    opened by Tointoin 12
  • GError: Couldn't create 'uridecodebin' element

    GError: Couldn't create 'uridecodebin' element

    When I do :

    from timeside.core import get_processor
    file = '../audio/ah.wav'
    file_decoder = get_processor('file_decoder')(file)
    

    I get :

    GErrorTraceback (most recent call last)
    <ipython-input-27-58037aa0cfa2> in <module>()
          1 from timeside.core import get_processor
          2 file = '../audio/ah.wav'
    ----> 3 file_decoder = get_processor('file_decoder')(file)
    
    /usr/local/lib/python2.7/dist-packages/TimeSide-0.8.1-py2.7.egg/timeside/plugins/decoder/file.pyc in __init__(self, uri, start, duration, stack, sha1)
        105             self._sha1 = sha1.encode('utf8')
        106 
    --> 107         self.uri_total_duration = get_media_uri_info(self.uri)['duration']
        108 
        109         self.mimetype = None
    
    /usr/local/lib/python2.7/dist-packages/TimeSide-0.8.1-py2.7.egg/timeside/plugins/decoder/utils.pyc in get_media_uri_info(uri)
        127     #import gobject
        128     GST_DISCOVER_TIMEOUT = 5000000000L
    --> 129     uri_discoverer = Discoverer(GST_DISCOVER_TIMEOUT)
        130     try:
        131         uri_info = uri_discoverer.discover_uri(uri)
    
    GError: Couldn't create 'uridecodebin' element
    
    opened by AnasGhrab 12
  • Not able to install

    Not able to install

    Hello,

    I am using Ubuntu 14.04LTS, when I tried to install TimeSide, I get the following result:

    Reading package lists... Done Building dependency tree
    Reading state information... Done The following packages were automatically installed and are no longer required: libboost-tools-dev libboost1.54-tools-dev libhwloc-dev libhwloc-plugins libhwloc5 libpci-dev libxml2-dev Use 'apt-get autoremove' to remove them. The following NEW packages will be installed: python-timeside 0 upgraded, 1 newly installed, 0 to remove and 34 not upgraded. Need to get 0 B/418 kB of archives. After this operation, 1,190 kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! python-timeside Install these packages without verification? [y/N] y Selecting previously unselected package python-timeside. (Reading database ... 368002 files and directories currently installed.) Preparing to unpack .../python-timeside_0.5.6-1~bpo70+1_amd64.deb ... Unpacking python-timeside (0.5.6-1~bpo70+1) ... Setting up python-timeside (0.5.6-1~bpo70+1) ... W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main amd64 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-amd64_Packages) W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main amd64 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-amd64_Packages) W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main amd64 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-amd64_Packages) W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main i386 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-i386_Packages) W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main i386 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-i386_Packages) W: Duplicate sources.list entry http://debian.parisson.com/debian/ stable/main i386 Packages (/var/lib/apt/lists/debian.parisson.com_debian_dists_stable_main_binary-i386_Packages) W: You may want to run apt-get update to correct these problems

    {note: I also ran apt-get update}

    Then when I run "import timeside" in python, I get the following error:

    Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/TimeSide-0.5.6-py2.7.egg/timeside/init.py", line 32, in from .tools import package as ts_package ImportError: No module named tools

    opened by vishnu-anirudh 12
  • [server] Cookies should set SameSite='None'

    [server] Cookies should set SameSite='None'

    In app/settings.py, we set

    SESSION_COOKIE_SAMESITE = None
    CSRF_COOKIE_SAMESITE = None
    

    The result of this configuration is to ignore the SameSite cookie attribute (as seen below).

    $ curl -v -H 'cookie: csrftoken=xxx' -H 'Referer: https://sandbox.wasabi.telemeta.org/accounts/login/' -v https://sandbox.wasabi.telemeta.org/accounts/login/ -d 'username=admin' -d'password=xxx' -d 'csrfmiddlewaretoken=xxxx' 2>&1 | grep -i set-cookie
    < set-cookie: csrftoken=xxx; expires=Tue, 23 Mar 2021 16:22:44 GMT; Max-Age=31449600; Path=/; Secure
    < set-cookie: sessionid=xxx; expires=Tue, 07 Apr 2020 16:22:44 GMT; HttpOnly; Max-Age=1209600; Path=/; Secure
    

    However, starting from Chrome 80, cookies without a SameSite attribute have the 'Lax' value. This break the player as we need the authentication cookie to be available on different domains.

    Note: For testing purposes, you can disable this Chrome feature with

    $ google-chrome --disable-features=SameSiteByDefaultCookies
    

    There is no way to set this cookie to 'None' in Django (string value) as of today.

    The issue has been fixed 3 months ago by the Django team in this commit and will be released in Django 3.1 (release planned for August 2020).

    In the meantime, we can either:

    @Tointoin @yomguy What's your thoughts?

    bug 
    opened by gnuletik 11
  • NaN in AnalyzerResult

    NaN in AnalyzerResult

    The stress test for analyzers added by 2aa0b7434da9dc06 reveals some nasty NaN.

    Nan appears in:

    • Onset Detection Function
    • IRIT Speech 4Hz Modulation Energy Confidence
    • AubioPitch in pitch_confidence (temporary fix by 1a35d497e30043 but @piem may provide an better upstream solution through aubio)
    optimization 
    opened by thomasfillon 11
  • How standalone is the player ?

    How standalone is the player ?

    Hi and thanks for your work on this project.

    My question is straightforward : is the player really usable without all the fancy sound analysis stuff TimeSide provides ?

    I would like to use the great functionality the player provides, but can't afford to install and code all the necessary software intended to be used serverside.

    I saw this issue https://github.com/Parisson/TimeSide/issues/56 which is closed but doesn't seem really answered, and which is very old, so I wanted to get some fresh information on this matter.

    Hope to read from you soon. Thanks for reading.

    question 
    opened by Numerizen 10
  • limsi diarisation module

    limsi diarisation module

    This is limsi baseline diarisation model. Several improvements will be done in the next few months. It is dependent of pyannote modules: these modules can be found on https://github.com/pyannote The dev branch of these modules must be used for a correct behaviour

    opened by DavidDoukhan 10
  • server.selections: specified key was too long; max key length is 1000 bytes

    server.selections: specified key was too long; max key length is 1000 bytes

    @AnasGhrab reported: https://github.com/Parisson/Telemeta/issues/78

    Running migrations for django_extensions:

    • Nothing to migrate.

      • Loading initial data for django_extensions. Installed 0 object(s) from 0 fixture(s) Running migrations for telemeta:
    • Nothing to migrate.

      • Loading initial data for telemeta. Installed 0 object(s) from 0 fixture(s) Running migrations for server:
      • Migrating forwards to 0001_initial.

        server:0001_initial FATAL ERROR - The following SQL query failed: CREATE TABLE timeside_selections (id integer AUTO_INCREMENT NOT NULL PRIMARY KEY, date_added datetime NOT NULL, date_modified datetime NULL, uuid varchar(512) NOT NULL UNIQUE, title varchar(512) NOT NULL, description longtext NOT NULL, author_id integer NULL) The error was: (1071, 'Specified key was too long; max key length is 1000 bytes') ! Error found during real run of migration! Aborting.

      ! Since you have a database that does not support running ! schema-altering statements in transactions, we have had ! to leave it in an interim state between migrations.

    ! You might be able to recover with: = DROP TABLE timeside_selections CASCADE; [] = DROP TABLE timeside_selections_items CASCADE; [] = DROP TABLE timeside_selections_selections CASCADE; [] = DROP TABLE timeside_items CASCADE; [] = DROP TABLE timeside_experiences CASCADE; [] = DROP TABLE timeside_experiences_presets CASCADE; [] = DROP TABLE timeside_experiences_experiences CASCADE; [] = DROP TABLE timeside_processors CASCADE; [] = DROP TABLE timeside_presets CASCADE; [] = DROP TABLE timeside_results CASCADE; [] = DROP TABLE timeside_tasks CASCADE; []

    ! The South developers regret this has happened, and would ! like to gently persuade you to consider a slightly ! easier-to-deal-with DBMS (one that supports DDL transactions) ! NOTE: The error which caused the migration to fail is further up. Error in migration: server:0001_initial

    bug 
    opened by yomguy 9
  • TimeSide==0.8 (dev) + Telemeta 1.5.2 (dev) : Can't play files

    TimeSide==0.8 (dev) + Telemeta 1.5.2 (dev) : Can't play files

    Reading audio files is not possible. It is always loading. It works well with Telemeta 1.5.1 + TimeSide==0.8 (dev), but not using Telemeta 1.5.2 (dev).

    opened by AnasGhrab 9
  • Bump express from 4.17.1 to 4.17.3 in /websockets

    Bump express from 4.17.1 to 4.17.3 in /websockets

    Bumps express from 4.17.1 to 4.17.3.

    Release notes

    Sourced from express's releases.

    4.17.3

    4.17.2

    Changelog

    Sourced from express's changelog.

    4.17.3 / 2022-02-16

    4.17.2 / 2021-12-16

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump qs and express in /websockets

    Bump qs and express in /websockets

    Bumps qs to 6.11.0 and updates ancestor dependency express. These dependencies need to be updated together.

    Updates qs from 6.7.0 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates express from 4.17.1 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /websockets

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /websockets

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump certifi from 2019.11.28 to 2022.12.7

    Bump certifi from 2019.11.28 to 2022.12.7

    Bumps certifi from 2019.11.28 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
  • Bump pillow from 7.0.0 to 9.3.0

    Bump pillow from 7.0.0 to 9.3.0

    Bumps pillow from 7.0.0 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
  • Bump tensorflow from 2.4.0 to 2.9.3

    Bump tensorflow from 2.4.0 to 2.9.3

    Bumps tensorflow from 2.4.0 to 2.9.3.

    Release notes

    Sourced from tensorflow's releases.

    TensorFlow 2.9.3

    Release 2.9.3

    This release introduces several vulnerability fixes:

    TensorFlow 2.9.2

    Release 2.9.2

    This releases introduces several vulnerability fixes:

    ... (truncated)

    Changelog

    Sourced from tensorflow's changelog.

    Release 2.9.3

    This release introduces several vulnerability fixes:

    Release 2.8.4

    This release introduces several vulnerability fixes:

    ... (truncated)

    Commits
    • a5ed5f3 Merge pull request #58584 from tensorflow/vinila21-patch-2
    • 258f9a1 Update py_func.cc
    • cd27cfb Merge pull request #58580 from tensorflow-jenkins/version-numbers-2.9.3-24474
    • 3e75385 Update version numbers to 2.9.3
    • bc72c39 Merge pull request #58482 from tensorflow-jenkins/relnotes-2.9.3-25695
    • 3506c90 Update RELEASE.md
    • 8dcb48e Update RELEASE.md
    • 4f34ec8 Merge pull request #58576 from pak-laura/c2.99f03a9d3bafe902c1e6beb105b2f2417...
    • 6fc67e4 Replace CHECK with returning an InternalError on failing to create python tuple
    • 5dbe90a Merge pull request #58570 from tensorflow/r2.9-7b174a0f2e4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
Releases(1.0.0a)
  • 1.0.0a(Oct 13, 2020)

    • Server refactoring:
      • audio process run on items (REST API track's model)
      • several tools, views, models and serializers
      • REST API's schema on OpenAPI 3 specification and automatic Redoc generation
    • Move core and server from Python 2.7 to 3.7
    • Upgrade Django to 2.2, Django REST Framework to 3.11, Celery to 4.4
    • Add an Aubio <https://github.com/aubio/aubio>_ based decoder
    • Add core and server processors' versioning and server process' run time
    • Regroup all dependencies on pip requirements removing conda use
    • Add :ref:provider as a core API component and as a REST API model
    • Add provider plugins :ref:deezer-preview, :ref:deezer-complete and :ref:youtube
    • Improve server unit testing
    • Add JWT authentication on REST API
    • Various bug fixes
    • Add core, server and workers logging
    Source code(tar.gz)
    Source code(zip)
  • 0.8.3(Aug 20, 2018)

  • 0.9.1(Aug 20, 2018)

    • Upgrade all python dependencies
    • Add Vamp, Essentia, Yaafe, librosa, PyTorch, Tensorflow libs and wrappers
    • Add a few analyzing plugins (Essentia Dissonance, Vamp Constant Q, Vamp Tempo, Vamp general wrapper, Yaafe general wrapper)
    • Add processor parameter management
    • Add processor inheritance
    • Improve HTML5 player with clever data streaming
    • Improve REST API and various serialzers
    • Improve unit testing
    • Various bug fixes
    Source code(tar.gz)
    Source code(zip)
  • 0.8(Feb 18, 2016)

    • Add Docker support for instant installation. This allows to run TimeSide now on any OS platform!
    • Add Jupyter Notebook support for easy prototyping, experimenting and sharing (see the examples in the doc).
    • Add an experimental web server and REST API based on Django REST Framework, Redis and Celery. This now provides a real web audio processing server with high scaling capabilities thanks to Docker (clustering) and Celery (multiprocessing).
    • Start the development of a new player interface thanks to Angular and WavesJS.
    • Huge cleanup of JS files. Please now use bower to get all JS dependencies as listed in settings
    • Add metadata export to Elan annotation files.
    • Fix and improve some data structures in analyzer result containers.
    • Many various bugfixes.
    Source code(tar.gz)
    Source code(zip)
Owner
Parisson
custom streaming solutions
Parisson
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python

audioread Decode audio files using whichever backend is available. The library currently supports: Gstreamer via PyGObject. Core Audio on Mac OS X via

beetbox 419 Dec 26, 2022
cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python

audioread Decode audio files using whichever backend is available. The library currently supports: Gstreamer via PyGObject. Core Audio on Mac OS X via

beetbox 359 Feb 15, 2021
convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format.

convert-to-opus-cli convert-to-opus-cli is a Python CLI program for converting audio files to opus audio format. Installation Must have installed ffmp

null 4 Dec 21, 2022
Audio spatialization over WebRTC and JACK Audio Connection Kit

Audio spatialization over WebRTC Spatify provides a framework for building multichannel installations using WebRTC.

Bruno Gola 34 Jun 29, 2022
Audio augmentations library for PyTorch for audio in the time-domain

Audio augmentations library for PyTorch for audio in the time-domain, with support for stochastic data augmentations as used often in self-supervised / contrastive learning.

Janne 166 Jan 8, 2023
Python audio and music signal processing library

madmom Madmom is an audio signal processing library written in Python with a strong focus on music information retrieval (MIR) tasks. The library is i

Institute of Computational Perception 1k Dec 26, 2022
An audio digital processing toolbox based on a workflow/pipeline principle

AudioTK Audio ToolKit is a set of audio filters. It helps assembling workflows for specific audio processing workloads. The audio workflow is split in

Matthieu Brucher 238 Oct 18, 2022
Pyroomacoustics is a package for audio signal processing for indoor applications. It was developed as a fast prototyping platform for beamforming algorithms in indoor scenarios.

Summary Pyroomacoustics is a software package aimed at the rapid development and testing of audio array processing algorithms. The content of the pack

Audiovisual Communications Laboratory 1k Jan 9, 2023
Accompanying code for our paper "Point Cloud Audio Processing"

Point Cloud Audio Processing Krishna Subramani1, Paris Smaragdis1 1UIUC Paper For the necessary libraries/prerequisites, please use conda/anaconda to

Krishna Subramani 17 Nov 17, 2022
Audio fingerprinting and recognition in Python

dejavu Audio fingerprinting and recognition algorithm implemented in Python, see the explanation here: How it works Dejavu can memorize audio by liste

Will Drevo 6k Jan 6, 2023
Python library for audio and music analysis

librosa A python package for music and audio analysis. Documentation See https://librosa.org/doc/ for a complete reference manual and introductory tut

librosa 5.6k Jan 6, 2023
Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications

A Python library for audio feature extraction, classification, segmentation and applications This doc contains general info. Click here for the comple

Theodoros Giannakopoulos 5.1k Jan 2, 2023
Python module for handling audio metadata

Mutagen is a Python module to handle audio metadata. It supports ASF, FLAC, MP4, Monkey's Audio, MP3, Musepack, Ogg Opus, Ogg FLAC, Ogg Speex, Ogg The

Quod Libet 1.1k Dec 31, 2022
Python I/O for STEM audio files

stempeg = stems + ffmpeg Python package to read and write STEM audio files. Technically, stems are audio containers that combine multiple audio stream

Fabian-Robert Stöter 72 Dec 23, 2022
Python library for handling audio datasets.

AUDIOMATE Audiomate is a library for easy access to audio datasets. It provides the datastructures for accessing/loading different datasets in a gener

Matthias 121 Nov 27, 2022
A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.

Audiomentations A Python library for audio data augmentation. Inspired by albumentations. Useful for deep learning. Runs on CPU. Supports mono audio a

Iver Jordal 1.2k Jan 7, 2023
Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications

A Python library for audio feature extraction, classification, segmentation and applications This doc contains general info. Click here for the comple

Theodoros Giannakopoulos 3.8k Feb 17, 2021
C++ library for audio and music analysis, description and synthesis, including Python bindings

Essentia Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license.

Music Technology Group - Universitat Pompeu Fabra 2.3k Jan 3, 2023
spafe: Simplified Python Audio-Features Extraction

spafe aims to simplify features extractions from mono audio files. The library can extract of the following features: BFCC, LFCC, LPC, LPCC, MFCC, IMFCC, MSRCC, NGCC, PNCC, PSRCC, PLP, RPLP, Frequency-stats etc. It also provides various filterbank modules (Mel, Bark and Gammatone filterbanks) and other spectral statistics.

Ayoub Malek 310 Jan 1, 2023