Scalable audio processing framework written in Python with a RESTful API

Related tags

AudioTimeSide
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
Hide Your Secret Message in any Wave Audio File.

HiddenWave Embedding secret messages in wave audio file What is HiddenWave Hiddenwave is a python based program for simple audio steganography. You ca

TechChip 99 Dec 28, 2022
A python script that can play .mp3 URLs upon the ringing or motion detection of a Ring doorbell. The sound plays through Sonos speakers.

Ring x Sonos A python script that plays .mp3 files whenever a doorbell is rung or a doorbell detects motion. Features Music! Authors @braden Running T

braden 0 Nov 12, 2021
Basically Play Pauses the song when it is safe to do so. when you die in a round

Basically Play Pauses the song when it is safe to do so. when you die in a round

AG_1436 1 Feb 13, 2022
This library provides common speech features for ASR including MFCCs and filterbank energies.

python_speech_features This library provides common speech features for ASR including MFCCs and filterbank energies. If you are not sure what MFCCs ar

James Lyons 2.2k Jan 04, 2023
Telegram Bot to play music in VoiceChat with Channel Support and autostarts Radio.

VCPlayerBot Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live streams, YouTube videos and telegram media

Abdisamad Omar Mohamed 1 Oct 15, 2021
Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs.

vog_oracles Audio processor to map oracle notes in the VoG raid in Destiny 2 to call outs. Huge thanks to mzucker on GitHub for the note detection cod

19 Sep 29, 2022
Spotify Song Recommendation Program

Spotify-Song-Recommendation-Program Made by Esra Nur Özüm Written in Python The aim of this project was to build a recommendation system that recommen

esra nur özüm 1 Jun 30, 2022
A tool for retrieving audio in the past

Rewinder A tool for retrieving audio in the past. Ever felt like, I need to remember that discussion which happened 10 min back. Now you can! Rewind a

Bharat 1 Jan 24, 2022
SomaFM Plugin for Kodi

SomaFM XBMC Plugin This description is a bit outdated. You can simply install this addon by browsing the official repositories from within Kodi. Insta

7 Jan 21, 2022
extract unpack asset file (form unreal engine 4 pak) with extenstion *.uexp which contain awb/acb (cri/cpk like) sound or music resource

Uexp2Awb extract unpack asset file (form unreal engine 4 pak) with extenstion .uexp which contain awb/acb (cri/cpk like) sound or music resource. i ju

max 6 Jun 22, 2022
Code for "Audio-driven Talking Face Video Generation with Learning-based Personalized Head Pose"

Audio-driven Talking Face Video Generation with Learning-based Personalized Head Pose We provide PyTorch implementations for our arxiv paper "Audio-dr

Ran Yi 497 Jan 09, 2023
A Python wrapper for the high-quality vocoder "World"

PyWORLD - A Python wrapper of WORLD Vocoder Linux Windows WORLD Vocoder is a fast and high-quality vocoder which parameterizes speech into three compo

Jeremy Hsu 583 Dec 15, 2022
Inner ear models for Python

cochlea cochlea is a collection of inner ear models. All models are easily accessible as Python functions. They take sound signal as input and return

98 Jan 05, 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
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

4 Dec 21, 2022
All-In-One Digital Audio Workstation and Plugin Suite

How to install Windows Mac OS X Fedora Ubuntu How to Build Debian and Ubuntu Fedora All Other Linux Distros Mac OS X Windows What is MusiKernel? MusiK

j3ffhubb 111 Sep 21, 2021
A GUI-based audio player with support for a large variety of formats

Miza-Player A GUI-based audio player with support for a large variety of formats, able to play from web-hosted media platforms such as YouTube, includ

Thomas Xin 3 Dec 14, 2022
Python tools for the corpus analysis of popular music.

CATCHY Corpus Analysis Tools for Computational Hook discovery Python tools for the corpus analysis of popular music recordings. The tools can be used

Jan VB 20 Aug 20, 2022
Scrap electronic music charts into CSV files

musiccharts A small python script to scrap (electronic) music charts into directories with csv files. Installation Download MusicCharts.exe Run MusicC

Dustin Scharf 1 May 11, 2022
Port Hitsuboku Kumi Chinese CVVC voicebank to deepvocal. / 筆墨クミDeepvocal中文音源

Hitsuboku Kumi (筆墨クミ) is a UTAU virtual singer developed by Cubialpha. This project ports Hitsuboku Kumi Chinese CVVC voicebank to deepvocal. This is the first open-source deepvocal voicebank on Gith

8 Apr 26, 2022