Comments (13)
Hi,
I'm not sure I understand what you mean exactly by "range" of the source detection? Can you be more specific?
Thank you,
from odas.
Please see the diagram. I'm interested in 'tuning' the mic array to differing distances in order to record wildlife at ranges above 10m. By using the beam-forming of odas, is it possible to 'focus' the mic array at a distance of 20m or 30m as shown in the diagram. For example increasing the amplification of the sound from the source or cancelling more background noise. The mic array will always be set to the static vector as shown, perpendicular to the mic array, the user would just have to point the mic array in the direction of the sound source.
hope this makes things clearer:)
from odas.
Thank you for the clear explanations and the figure :) Unfortunately, you cannot get the distance or focus the beamformer for a specific range if your sensors are closed to each other compared to the target source. I have written a small explanation in the new FAQ section as this question comes back very often. Please have a look here: https://github.com/introlab/odas/wiki/Frequently-Asked-Questions
I hope this answers your questions,
Thank you
from odas.
Thanks for the information, is it possible to carry out dynamic SST within a given vector and angle ( a cone) as shown in the diagram. When i try to record sound using static and vector of x=0.0,y=0.0 and z=1.0 no recordings are made on the seperation or postfiltered just blank file are produced.
Thank you in advance.
from odas.
The injector
module is designed to use either a target for a constant direction, or can refresh the directions over time (for instance you could send the new directions via a socket). The latter feature has not been implemented yet, but the architecture allows this to be done quite easily. If this is something you find useful, I'll add this feature asap.
As for your current issue with blank files for separated and postfiltered signals, I will have to look at your configuration (.cfg). Moreover, can you record the multichannels audio stream in raw format (16-bit signed little endian). With both the cfg and raw files, and can reproduce your issue on my side and troubleshoot.
from odas.
That would be great feature to implement, the ability to 'steer' the beam possibly using odas_web would be a brilliant feature.
I've done some investigation with the raw files and found that they are actually being recorded at 8000 rather than 16000 than specified in my config.
Do the raw files contain the number of channels that are given by the mic array?
I've attached the cfg.
many thanks for devoting so much time to this.
ReSpeaker.cfg.txt
from odas.
Your config file seems good.
So let's not be confused here: there are RAW files generated by separation and postfiltering, but here I'm referring to the RAW file obtained directly from the microphone array, before this is processed by ODAS. In this case, if your soundcard provides 8 channels (even though you select only 7 of them in the mapping
section), your RAW file should contains the samples in the following structure:
Channel 1, Sample 1, in 16-bit signed short (little endian) Channel 2, Sample 1, in 16-bit signed short (little endian) Channel 3, Sample 1, in 16-bit signed short (little endian) Channel 4, Sample 1, in 16-bit signed short (little endian) Channel 5, Sample 1, in 16-bit signed short (little endian) Channel 6, Sample 1, in 16-bit signed short (little endian) Channel 7, Sample 1, in 16-bit signed short (little endian) Channel 8, Sample 1, in 16-bit signed short (little endian) Channel 1, Sample 2, in 16-bit signed short (little endian) Channel 2, Sample 2, in 16-bit signed short (little endian) Channel 3, Sample 2, in 16-bit signed short (little endian) Channel 4, Sample 2, in 16-bit signed short (little endian) Channel 5, Sample 2, in 16-bit signed short (little endian) Channel 6, Sample 2, in 16-bit signed short (little endian) Channel 7, Sample 2, in 16-bit signed short (little endian) Channel 8, Sample 2, in 16-bit signed short (little endian) ...
If you could send me this file (obtained directly from the recording), I could have a look. For now ODAS can read this file directly (instead of reading from a soundcard) and generate outputs, so this allows you to reproduce results once the input is recorded and stored in a .raw file. I haven't add yet the possibility to record the raw from the soundcard directly while ODAS is running (e.g. you localize/track/separate and generate separated and postfiltered streams in files, and you also store the raw input in another file). For now you can record this file with Audacity or similar free software.
from odas.
Here is a raw file recorded at 32Khz 16bit little endian using arecord and the ReSpeaker array
audio-8ch-32k-14m.raw.zip
The sound source is 14m away from the array.
from odas.
Ok so I ran the code with your RAW file. I get both separated and postfiltered streams, and there is something in the stream. I have joined the RAW files for separated/postfiltered, and the .cfg file. Don't forget that these RAW files are four channels because the maximum number of simultaneous tracked sources is set to four. To hear the results, open the raw file as 16-bit signed little endian with four channels, and play the wave in the first channel.
Please let me know if this works,
audio-8ch-32k-14m_sep-4ch-16k_pf-4ch-16k.zip
from odas.
the files do play:) I have gone back and carried out another test from the sound card. I am now getting the separated and post filtered raw files but even though the output raw file should be set at 16000Khz in the odas cfg, when i import them using audacity, the sound files are actually 8000Khz. Is there any reason for this?
Apart from that the issue has been resolved! Many thanks for the time spent on this with me
from odas.
the sound files are actually 8000Khz. Is there any reason for this?
Strange. It seems fine when I import them using audacity on my side. Are you using these settings: Signed 16 bit PCM, little endian, 4 channels, sample rate = 16000?
from odas.
from odas.
Ok thank you. I'll keep an eye on that to see if I am missed something.
from odas.
Related Issues (20)
- Is there a tutorial/guide on odas code? or could you add more comments?
- Is there a Python wrapper for this library HOT 3
- Trouble with Sound Source Separation
- Decibel Level
- Respeaker USB not working with direct capture HOT 2
- Persistent source tracking?
- odas automatically closing on pi zero w
- The definition of uniform distribution is different between the paper and code HOT 1
- How can I revise the SSL section for seeing some parameters? HOT 1
- Hardware list
- Tunning ODAS for a noisy robot
- sound source separation tuning
- Which configuration file shall I choose, if I have a 8-array microphone? HOT 1
- What does the raw output of ODAS mean?
- What does the raw output mean? HOT 1
- How to change the output frequency?
- PSEYE Config File -> raw: -> fS = 16000
- Calculating azimuth and elevation angle basaed on delay time between microphones
- run odasliv HOT 1
- The channels' order of SSS do not match with SST
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from odas.