Closed valkjsaaa closed 5 years ago
Hi @valkjsaaa,
First you must use the master branch version of ODAS with ODAS Studio (odas_web). Phoenix changed the ODAS socket management from client to server, so it can't connect with ODAS Studio anymore.
You can then follow the ODAS Studio ODAS configuration instructions to set the proper interfaces in ODAS.
hi, you need to hit odas_web->lunch, terminal would show like this:
server listening to {"address":"::","family":"IPv6","port":10000}
server listening to {"address":"::","family":"IPv6","port":9000}
server listening to {"address":"::","family":"IPv6","port":9001}
received launch command
/home/nonikka/Downloads/code/odas_xiongyihui/odas_builded/bin/odaslive
/home/nonikka/Downloads/code/odas_xiongyihui/odas_builded/config/odaslive/respeaker_usb_4_mic_array_gui.cfg
then run your core ues like this: ./odaslive -c ../config/odaslive/respeaker_usb_4_mic_arrayui.cfg of courese, your config file should modify by your self. then you will see in last terminal:
new client connection from ::ffff:127.0.0.1:38232
new client connection from ::ffff:127.0.0.1:45564
new client connection from ::ffff:127.0.0.1:43554
if interest, this is my config file.(I use old version, so it is .cfg,not json)
# Configuration file for ReSpeaker USB 4 Mic Array (ReSpeaker USB Mic Array v2.0)
version = "2.1";
# Raw
raw:
{
fS = 16000;
hopSize = 128;
nBits = 16;
nChannels = 6;
# Input with raw signal from microphones
interface: {
type = "soundcard";
card = 1;
device = 0;
}
}
# Mapping
mapping:
{
map: (2, 3, 4, 5);
}
# General
general:
{
epsilon = 1E-20;
size:
{
hopSize = 128;
frameSize = 256;
};
samplerate:
{
mu = 16000;
sigma2 = 0.01;
};
speedofsound:
{
mu = 343.0;
sigma2 = 25.0;
};
mics = (
# Microphone 2
{
mu = ( -0.032, +0.000, +0.000 );
sigma2 = ( +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000 );
direction = ( +0.000, +0.000, +1.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 3
{
mu = ( +0.000, -0.032, +0.000 );
sigma2 = ( +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000 );
direction = ( +0.000, +0.000, +1.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 4
{
mu = ( +0.032, +0.000, +0.000 );
sigma2 = ( +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000 );
direction = ( +0.000, +0.000, +1.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 5
{
mu = ( +0.000, +0.032, +0.000 );
sigma2 = ( +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000, +0.000 );
direction = ( +0.000, +0.000, +1.000 );
angle = ( 80.0, 100.0 );
}
);
# Spatial filter to include only a range of direction if required
# (may be useful to remove false detections from the floor)
spatialfilters = (
{
direction = ( +0.000, +0.000, +1.000 );
angle = (80.0, 100.0);
}
);
nThetas = 181;
gainMin = 0.25;
};
# Stationnary noise estimation
sne:
{
b = 3;
alphaS = 0.1;
L = 150;
delta = 3.0;
alphaD = 0.1;
}
# Sound Source Localization
ssl:
{
nPots = 4;
nMatches = 10;
probMin = 0.5;
nRefinedLevels = 1;
interpRate = 4;
# Number of scans: level is the resolution of the sphere
# and delta is the size of the maximum sliding window
# (delta = -1 means the size is automatically computed)
scans = (
{ level = 2; delta = -1; },
{ level = 4; delta = -1; }
);
potential: {
format = "json";
interface: {
type = "socket";
ip = "127.0.0.1";
port = 9001;
};
};
};
# Sound Source Tracking
sst:
{
# Mode is either "kalman" or "particle"
mode = "kalman";
# Add is either "static" or "dynamic"
add = "dynamic";
# Parameters used by both the Kalman and particle filter
active = (
{ weight = 1.0; mu = 0.4; sigma2 = 0.0025 }
);
inactive = (
{ weight = 1.0; mu = 0.25; sigma2 = 0.0025 }
);
sigmaR2_prob = 0.0025;
sigmaR2_active = 0.0225;
sigmaR2_target = 0.0025;
Pfalse = 0.1;
Pnew = 0.1;
Ptrack = 0.8;
theta_new = 0.9;
N_prob = 5;
theta_prob = 0.8;
N_inactive = ( 250, 250, 250, 250 );
theta_inactive = 0.9;
# Parameters used by the Kalman filter only
kalman: {
sigmaQ = 0.001;
};
# Parameters used by the particle filter only
particle: {
nParticles = 1000;
st_alpha = 2.0;
st_beta = 0.04;
st_ratio = 0.5;
ve_alpha = 0.05;
ve_beta = 0.2;
ve_ratio = 0.3;
ac_alpha = 0.5;
ac_beta = 0.2;
ac_ratio = 0.2;
Nmin = 0.7;
};
target: ();
# Output to export tracked sources
tracked: {
format = "json";
interface: {
type = "socket";
ip = "127.0.0.1";
port = 9000;
};
};
}
sss:
{
# Mode is either "dds", "dgss" or "dmvdr"
mode_sep = "dds";
mode_pf = "ms";
gain_sep = 1.0;
gain_pf = 10.0;
dds: {
};
dgss: {
mu = 0.01;
lambda = 0.5;
};
dmvdr: {
};
ms: {
alphaPmin = 0.07;
eta = 0.5;
alphaZ = 0.8;
thetaWin = 0.3;
alphaWin = 0.3;
maxAbsenceProb = 0.9;
Gmin = 0.01;
winSizeLocal = 3;
winSizeGlobal = 23;
winSizeFrame = 256;
};
ss: {
Gmin = 0.01;
Gmid = 0.9;
Gslope = 10.0;
};
separated: {
fS = 16000;
hopSize = 512;
nBits = 16;
interface: {
type = "socket";
ip = "127.0.0.1";
port = 10000;
#type = "file";
#path = "separated.raw";
}
};
postfiltered: {
fS = 16000;
hopSize = 512;
nBits = 16;
interface: {
#type = "socket";
#ip = "127.0.0.1";
#port = 10010;
type = "file";
path = "separated.raw";
}
};
};
classify:
{
frameSize = 4096;
winSize = 3;
tauMin = 88;
tauMax = 551;
deltaTauMax = 20;
alpha = 0.3;
gamma = 0.05;
phiMin = 0.5;
r0 = 0.2;
category: {
format = "undefined";
interface: {
type = "blackhole";
}
}
}
@Nonikka, the ODAS Studio launch button run the
$ ./odaslive -c ../config/odaslive/respeaker_usb_4_mic_arrayui.cfg
command trough Node.js os module.
You should not have to run ODAS core in another terminal. If the ODAS Studio launch button behave as expected, you will have two instance of ODAS core running fighting for the soundcard and sockets.
@Nonikka, the ODAS Studio launch button run the
$ ./odaslive -c ../config/odaslive/respeaker_usb_4_mic_arrayui.cfg
command trough Node.js os module.You should not have to run ODAS core in another terminal. If the ODAS Studio launch button behave as expected, you will have two instance of ODAS core running fighting for the soundcard and sockets.
Thanks for reply, I follow your step and it works.That's weird, may be my config file didn't set correctly before.
I have built odas_web from master and odascore from https://github.com/introlab/odas/tree/phoenix .
However, just specify the core and the config path in the UI and hit start didn't do anything. I suspect that it's because odas core haven't received any audio input. I wonder where should I specify audio input to the odas core?
Thanks!