Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Creating a localization algorithm for voice software

Kingsbury Yeats
Registered User
Join date: 15 Sep 2005
Posts: 30
10-28-2005 13:54
I am working on a large-scale educational project within SL. As part of the project we are developing some Voice over IP software. We need some help producing an object that would detect which users are within listening range of each other and email this data to our server.

We expect to have around 100 AVs in the sim at any time, and need to run the localization script constantly to determine the location of each AV without slowing down the sim too much.

Does anyone have any insight into how we would produce this system?
Aki Montale
Registered User
Join date: 21 Oct 2005
Posts: 9
Just a thought...
10-28-2005 14:20
Hi, (btw. i'm a SL newbie...)

I was just wondering after reading how resource intensive listen() functions seem to be, if your kind of system would be best to implement with talk-zones. I.e. you walk into a room, and then you can hear every conversation inside it.

Just an idea... would be interesting to see your system when you get it up and running...
Kurt Zidane
Just Human
Join date: 1 Apr 2004
Posts: 636
10-28-2005 15:34
Talk zones would be one way to eliminate overhead.

Instead of having a script that determines what avatars are in range. How about an attached object, with a script, that report to your servers the location and sim of an avatar. This would be less intensive to the sims, especially when there are 50 or more avatars. Of corse that means you have to calculate relation ship between avatars on your servers or clients.
XML-RPC could be used in ping format to transmit locational data. Witch means the script would be passive. The speed of data transmition would be faster then e-mail.
Padraig Stygian
The thin mick
Join date: 15 Aug 2004
Posts: 111
10-28-2005 19:38
Can a sim even *support* 100 avatars? I haven't seen a maxed out sim in a long time, but I remember that 35 was enough to set off the "Too many people" bounce message in 1.4...
_____________________
(You): Aww! My pants won't rez! Does this texture look okay on me?

Incidental Radio :: Because nothing is by design
Now featuring Torley-tastic technomusic!
Kingsbury Yeats
Registered User
Join date: 15 Sep 2005
Posts: 30
10-30-2005 16:42
Thanks for the ideas.

Do you know how reliable XML-RPC is and how frequently co-ordinate data can be sent to the server?

Our 100 users would be spread across 5 sims.
Maw Maeterlinck
Registered User
Join date: 21 Oct 2005
Posts: 1
10-31-2005 00:49
The XML-RPC support seems to be good. Not super fast all the time but pretty good.

When an object reports an avatars position to your server you could also include velocity and then perform some kind of dead-reckoning algorithm on your server to try and more accurately predict avatar position between updates. Various prediction algortihms exist, check out the QuakeWorld source code for an old but good example. This could easily get messy though!

Mike.
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
10-31-2005 04:00
XML-RPC is not 100% reliable in SL. Also, it works only inbound, you cannot send data out from SL. This means you'd have to poll your objects constantly.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
Kurt Zidane
Just Human
Join date: 1 Apr 2004
Posts: 636
10-31-2005 23:23
each script can only reply to an rpc request every 3 seconds. Even when xml-rpc is slow. It's still faster then e-mail. Long as xml-rpc is limited to replying, pining will be a standard prosses.
Aaron Perkins
Registered User
Join date: 14 Nov 2003
Posts: 50
11-02-2005 12:22
I've implemented a full localized voice system in SL called SecondVoice. It's been running for about 6 months now..

You can check it out here http://www.secondvoice.baronsoft.com/SecondVoice/tabid/53/Default.aspx

Basically it uses XML-RPC to send the players positions up to the custom made server. The server then routes player voice communication to only players in a certain range of each other.

If you need more details contact me in game.

From: Kingsbury Yeats
I am working on a large-scale educational project within SL. As part of the project we are developing some Voice over IP software. We need some help producing an object that would detect which users are within listening range of each other and email this data to our server.

We expect to have around 100 AVs in the sim at any time, and need to run the localization script constantly to determine the location of each AV without slowing down the sim too much.

Does anyone have any insight into how we would produce this system?