Forum


Notice to all users

We are migrating towards a new forum system located at community.teamspeak.com, as such this forum will become read-only on January 29, 2020

Results 1 to 4 of 4
  1. #1
    Join Date
    January 2012
    Posts
    6

    Solved Voice Recording, general

    Hello, I have read everything I can find about voice recording in both the client and server manual of TS3 SDK.

    From what I can see...

    1. From the server it is possible to get voice data per client with onVoiceDataEvent but there is no time synchronisation.
    What happens with silence? Is it up to me to insert the apropriate pauses to the file i write to?
    If I want to record all chat in a channel, do I have to mix voice data from different clients myself?

    What is the purpose of this function, the manual says server-side voice recording but how useful is it to only get voice data unmixed? It would be nice to be able to get per channel and set up a group of clients to be mixed together. The latter to work well when (simulating) talking and listening in multiple channels (by using whisper lists).

    2. Clients have the onEditMixedPlaybackVoiceDataEvent to capture all voice data the client hears.
    What happens with silence?
    To record all talk in a channel I can join with another client and record all data it hears.

    3. In the client manual, under voice recording it says "When using the above callbacks to record voice, you should notify the server when recording starts or stops"
    Why do the server need to know if a client records or not?
    What is the purpose of ts3client_startVoiceRecording and ts3client_stopVoiceRecording?

    Are there any other ways to get voice data from multiple clients to be mixed together in the SDK?

    Thanks!
    Last edited by MartinA; May 7th, 2012 at 03:17 PM. Reason: Spelling

  2. #2
    Join Date
    July 2002
    Location
    Germany
    Posts
    2,192
    Quote Originally Posted by MartinA View Post
    1. From the server it is possible to get voice data per client with onVoiceDataEvent but there is no time synchronisation.
    What happens with silence? Is it up to me to insert the apropriate pauses to the file i write to?
    If I want to record all chat in a channel, do I have to mix voice data from different clients myself?
    Yes this callback is per client ID, so unmixed sound data. The way it works is:
    (1) At the beginning of any client starting to talk, you receive a onClientStartTalkingEvent callback, and onVoiceDataEvent begins firing for this client
    (2) While the client is talking you will receive the onVoiceDataEvent every ~20ms, with voice data (or interpolated data if voice data was missing)
    (3) When the client stops talking you get a onClientStopTalkingEvent callback, and the onVoiceDataEvent stops firing for this client.

    Obviously you can mix recordings in any way you see fit, doing so (if you like) so that the exact conversation as took place in the channel is available. The mixing and offset of the individual transmission in time must be done by you in this case.

    If you are looking to avoid the mixing part what you could do is use a "dummy" client that joins the room just to record, you can take the mixed audio signal from this dummy client and store this. Generally there are more flexible options obtaining and modifying audio streams on the client side (since the client actually has a full audio processing chain).

    2. Clients have the onEditMixedPlaybackVoiceDataEvent to capture all voice data the client hears.
    What happens with silence?
    To record all talk in a channel I can join with another client and record all data it hears.
    Yes what you say is correct, silence is silent audio, not sure what to say here.

    3. In the client manual, under voice recording it says "When using the above callbacks to record voice, you should notify the server when recording starts or stops"
    Why do the server need to know if a client records or not?
    What is the purpose of ts3client_startVoiceRecording and ts3client_stopVoiceRecording?
    This is actually to notify other clients that you are recording. It is probably only important on the Client (and Client-SDK) side, for full SDK users I guess you might have your own consideration/laws to worry about concerning recording of private conversations.

    Are there any other ways to get voice data from multiple clients to be mixed together in the SDK?
    If you use the "custom device" mechanism on the client side you basically overwrite the playback part, implementing the "playback" yourself. You can for example just write the audio data to file...obviously this is all mixed data, since it is what is given to the sound card usually.

  3. #3
    Join Date
    June 2012
    Posts
    1
    Its always fun. i think this is a great information that you have posted here. I am very happy with this. Keep it up.

  4. #4
    Join Date
    August 2012
    Location
    india
    Posts
    1
    great tips thanks

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. TS3 is not recording my voice but everyone else
    By Legendenbalu in forum Windows
    Replies: 1
    Last Post: December 11th, 2013, 08:02 AM
  2. Voice recording
    By Radarsimulator in forum General Questions
    Replies: 1
    Last Post: September 25th, 2011, 08:08 AM
  3. [Already on todo] Change voice icon color in general and with conditions
    By Martin240 in forum Suggestions and Feedback
    Replies: 1
    Last Post: March 12th, 2010, 01:05 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •