This is a read-only archive of the Mumble forums.

This website archives and makes accessible historical state. It receives no updates or corrections. It is provided only to keep the information accessible as-is, under their old address.

For up-to-date information please refer to the Mumble website and its linked documentation and other resources. For support please refer to one of our other community/support channels.

Jump to content

Does ICE have info about who is speaking?


nickeh
 Share

Recommended Posts

Hi,


I have read the Slice API Documentation but I did not find any information about about who is speaking/whispering/shouting so is it possible? Or is there any other way to get information about who is speaking to my client using python?


I have the normal Mumble client running on a headless computer and I need to show who is talking by using leds above "push to talk" buttons so the user knows which button to press to talk to that user (without the others listening).


If this sound strange please take a look at my thread about using Mumble as a intercom system http:viewtopic.php?f=7&t=1517#p5415


Thanks in advance.

Link to comment
Share on other sites

  • Moderators

You can use idlesecs to get that, from the documentation:

int idlesecs;
   Idle time. This is how many seconds it is since the user last spoke. Other activity is not counted.

 

A user who is currently speaking has a idlesecs value of 0.

Link to comment
Share on other sites

Yes, but I do not know if the users is talking to my client. If a user is talking to somebody else the idleseconds is also 0, right?


In my case I have different channels, for example one for the video crew, one for the audio crew, one for light and so on. There can be many conversations going on in the different channels at the same time. But sometimes a users (one pre assigned in every channel) from another channel needs to talk (pre assigned whisper shortcut) to me and I need to know who that is. I would need to get the same data that the client uses to drive the blue/red lips, is that even possible using ICE or by any other method?

Link to comment
Share on other sites

  • Moderators

I don't believe the server provides that information to anyone. You can't even do it with a connected client, because the server only tells your client a) that a user is speaking and you can hear it and b) I believe they're flagged for whisper/shout versus regular speech.


The server doesn't communicate why you can hear someone, which could be that they're in the same channel as you (trivially guessed), that they're whispering/shouting (I believe they're flagged with the same flag, so you can't tell whether they're whispering your client directly, or shouting at the channel you're in), that you're in a linked channel, etc.


And as far as I know, Ice doesn't have any information on who's talking to who and why, you can just tell if someone has talked recently as detailed above.

Full disclosure: I used to run a commercial Mumble host, and my opinions do not reflect the opinions of the Mumble project.

Avatar is stolen from here

Link to comment
Share on other sites

OK, I was afraid of that :(


Would it be possible to get information about who is talking from the client in any way? Maybe by making a plugin that relays the data to the clipboard for example? I could maybe read the clipboard from my python script...

Link to comment
Share on other sites

  • Moderators

We don't really have any decent framework for general purpose plugins - our only plugins are for positional audio at the moment.


We could, in theory, expand the RPC stuff that's in the client to allow this, but it would be the same caveats as I mentioned above: you could tell who is talking that you can hear, and I believe you can tell whether it's "normal talking" or "whisper/shouting" (as a binary choice, ie you cannot, as far as I know, discern whispering from shouting). The client has no way of knowing if people are talking in other channels, etc.


From the sounds of it, with your project, you're going to want to build a modified server that does expose this information via Ice as that would be the cleanest way to accomplish it.

Full disclosure: I used to run a commercial Mumble host, and my opinions do not reflect the opinions of the Mumble project.

Avatar is stolen from here

Link to comment
Share on other sites

I see...


I was just thinking that by doing it in the client I could handle everything locally and the client would also only see users that are talking to me. I do not need to see if they are speaking/whispering/shouting it is enough if I know that they are speaking to me...

Link to comment
Share on other sites

Lindee: Great idea, yes that would work since all the clients are triggered by a python middleware but I'll first try to make it work within the client. But if I can't make it work, I'll use your idea. Thx!


I'm now plowing thru the sourcecode of Mumble to find where the lips and username are being rendered onto screen. When I find it I will try to make it do something besides changing .svg images onscreen :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...