Coder Social home page Coder Social logo

mbsantiago / whombat Goto Github PK

View Code? Open in Web Editor NEW
26.0 6.0 3.0 9.63 MB

Audio Annotation Tool for ML development

Home Page: https://mbsantiago.github.io/whombat/

License: GNU General Public License v3.0

Makefile 0.14% Python 50.21% TypeScript 49.00% JavaScript 0.01% CSS 0.03% Shell 0.33% Dockerfile 0.10% Mako 0.04% PowerShell 0.13%
annotation audio audio-annotation bioacoustics machine-learning

whombat's Issues

Import of annotation projects not working

  • Whombat version: HEAD
  • Python version: 3.11
  • Operating System: Ubuntu

Description

Importing an annotation project does not work, it only imports metadata, but no annotations or tasks are imported

What I Did

Make some annotations, download the project.
I expected the project to be in the same state as on download.

Incomplete spectrograms

  • Whombat version: 0.4.0
  • Python version: 3.11
  • Operating System: Ubuntu 20.04

Description

With arbitrary length audios the last segment of the spectrogram is sometimes missing.

What I Did

I've opened the annotation page for an audio file for a duration of 6.873088 seconds. However, the spectrogram is only generated until 6.4 seconds.

image

Inconsistent audio play behavior

  • Whombat version: v0.4.1
  • Python version: 3.10.12
  • Operating System: Ubuntu 22.04

Description

There is inconsistent behavior in the audio play feature. If I move forward to the next clip while audio is playing, it continues playing until it reaches the end of the clip. If I move to the previous clip while audio is playing it stops.

Feature requests

Good morning! I was hoping to place three feature requests.

  1. Could you add the Whombat version number to the About Us page? It would help with documentation and troubleshooting.
  2. Could you add a hotkey for 'add tags' in the Clip Tags window? Possibly, it should work for both instances of add tag, so if an annotation is selected, the add tag hotkey would work for the annotation, but if no annotations are selected, the add tag defaults to the Clip Tags window. I think 'T' makes sense here.
  3. Add a spectrogram feature setting to set the y-axis range. The filtering option looks like it applies a low/high/band-pass filter, but the y-axis still ranges from 0-Nyquist. It would be really helpful to set this range to focus on specific frequency ranges.

Best,
Matt

Emails not valiadating

  • Whombat version: main
  • Python version: 3.11.9
  • Operating System: Ubuntu

Description

When creating a user, the email validation might faill due to a bug in zod if it contains hyphens or subdomains.

What I Did

Just create new user (e.g., at /first upon first boot).

ValidationError while annotating

  • Whombat version: 0.4.0 (71c7519)
  • Python version: 3.11
  • Operating System: Ubuntu 23.10

Description

Trying to add annotations, the app returns raises a ValidationError while getting the current active user. The code in commit 8f6adf9 works fine for me. The following commit might have broken authentication. I think the same applies to other actions too.

What I Did

I've setup Whombat, created a user, a dataset and an annotation task. When I try to add any kind of annotation (e.g. a bounding box), I receive an internal server error. Running dev mode or adding a super user does not change this behavior.

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/applications.py", line 116, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 91, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 146, in simple_response
    await self.app(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 55, in wrapped_app
    raise exc
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 44, in wrapped_app
    await app(scope, receive, sender)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/routing.py", line 746, in __call__
    await route.handle(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/routing.py", line 75, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 55, in wrapped_app
    raise exc
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 44, in wrapped_app
    await app(scope, receive, sender)
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/starlette/routing.py", line 70, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 285, in app
    raise e
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 275, in app
    solved_result = await solve_dependencies(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/fastapi/dependencies/utils.py", line 598, in solve_dependencies
    solved = await call(**sub_values)
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/src/whombat/routes/dependencies/auth.py", line 48, in get_current_user
    return schemas.SimpleUser.model_validate(current_active_user)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vogelbam/projects/whombat/back/.venv/lib/python3.11/site-packages/pydantic/main.py", line 503, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for SimpleUser
  Input should be a valid dictionary or object to extract fields from [type=model_attributes_type, input_value=<function Authenticator.c...dency at 0x7f22f008e700>, input_type=function]
    For further information visit https://errors.pydantic.dev/2.5/v/model_attributes_type

Executable not working (v4.1) on Mac OS (M1 chip)

  • Whombat version: 4.1
  • Python version: N/A
  • Operating System: Mac OS 12.6 on Apple M1 Pro

Description

I downloaded the executable for Mac and double-clicked it

What I Did

Here's the message displayed:


    Welcome to:

    __      _| |__   ___  _ __ ___ | |__   __ _| |_
    \ \ /\ / / '_ \ / _ \| '_ ` _ \| '_ \ / _` | __|
     \ V  V /| | | | (_) | | | | | | |_) | (_| | |_
      \_/\_/ |_| |_|\___/|_| |_| |_|_.__/ \__,_|\__|

    An ML-focused audio annotation tool.

    Please wait while Whombat starts up...
    
The environment does not allow connecting to the splash screen. Are the splash resources attached to the bootloader or did an error occur?
Traceback (most recent call last):
  File "PyInstaller/fake-modules/pyi_splash.py", line 98, in <module>
  File "<frozen os>", line 679, in __getitem__
KeyError: '_PYIBoot_SPLASH'

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Inconsistent spectrogram representation

  • Whombat version: 0.4.0
  • Python version: 3.11
  • Operating System: 20.04

Description

Switching the selected best covering segment seems to impair the representation of calls. I'm not sure whether there's a satisfying solution to this issue, however, it might be confusing to labelers.

What I Did

I opened a file for annotation and zoomed in. While scrolling horizontally I noticed a call changing its representation which made it look as if the box wasn't fit properly. It appears to be caused by selecting a different covering segment. Here's an example including the used and selected segments:

Screenshot from 2024-03-26 10-45-07

Selected segment: 4
Start time: 1.2, End time: 1.7
Start time: 0.8999999999999999, End time: 1.4
Start time: 1.5, End time: 2

Screenshot from 2024-03-26 10-44-06

Selected segment: 5
Start time: 1.5, End time: 2
Start time: 1.2, End time: 1.7
Start time: 1.7999999999999998, End time: 2.3

Error creating dataset from D drive

  • Whombat version: 0.4.1 (downloaded as a zip file from releases)
  • Python version: 3.11
  • Operating System: Windows

Hello.
I've been struggling to find an easy to use wildlife call annotator recently and have been looking forward to using whobat, so I'm glad I can finally use it.

Description of issue

When I try to create a new dataset with a directory in the D drive (like D:/path/to/my/directory), I get a "Failed to create dataset" error on the GUI. No message is displayed in the terminal window.
This error does not occur when a directory is in the C drive, the default storage.
I store most of my audio data on the D drive as it's too large to store on the C drive.
Do you have any idea how to get access to the D drive from whombat?

Sorry if I missed something already mentioned in the user guide.

Thank you for your efforts in developping whombat!

Proposal: Adding Support for .flac Audio Files

Hello,

Thank you very much for supporting open source bioacoustics with this tool! I was wondering if there are plans to support .flac. I would appreciate any guidance on this, in case that you have a roadmap or notes about this feature. Probably that is a soundevent feature more than a whombat feature? Or both?

Looking forward to your feedback and excited about the possibility of contributing to whombat.

Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.