How to filter some voice whith java sound

hello all
I attempt to implement a chatroom(like interphone),but has some echo,how to filter it?
MIC(pc1) ---------->audioInputStream ====>network==>audioInputStream--------->Speaker(pc2)
MIC(pc2) ---------->audioInputStream ====>network==>audioInputStream--------->Speaker(pc1)
can you give me some advice
thanks.

Well, it is not a Java-specific issue.
There are three ways, in general, to solve it. The first is to isolate acoustically microphone and speaker. The second is to use switching: when the first is talking, the second can only listen, and vice versa. The third is to use echo suppression filters, which is not a part of Java framework and should be implemented by yourself.
To implement one, you should read some books dedicated to sound processing, or port one of the available algorithms to Java.

Similar Messages

  • How can I separate voice from game sounds in a audio channel?

    Hello, I have Adobe Premiere Pro CS6 and I want to know how can I separate my voice from the game audio from a video gameplay who are in the same audio channel.

    As far as I know this cannot be done. Unless you do some really, REALLY intense editing in Adobe Audition.
    I am a fellow lets-player and what I do is record my microphone input with a free-ware program called Audacity and record the game sounds with Mirillis Action! (or FRAPS, whatever you use). This way my voice and the game sounds are seperate.

  • How to filter some illegal rows when SQL Loader import data

    I want to import data in a csv file by SQL Loader.
    but , I don't want to import some illegal rows
    when the column 'name' is null
    how can I modify the SQL Loader ctrl file?

    Hi,
    refer this blogpost:
    http://gennick.com/allnull.html
    thanks,
    X A H E E R

  • How to implement effects in java sound

    I have read the programmer's guide in java sound and it said there that it can generate effects such as distortion, delay and others. I would like to implement some of those, I can already capture and play sound from a microphone but I don't know how to manipulate the data to get my desired effect. Can someone explain the content of the array of bytes? I also hope you can give me some hints or anything that could help me implement my own effect. Thanks in advance!

    going_infinity wrote:
    The contents of the double array do not exceed the range. They are mostly of -0.07 o 0.07.
    I forgot to post this code, this is how byte was transformed to a double array. I am just extending an existing codeAh, yes...that makes a lot more sense. I assumed you were reading from the line as double, and that wouldn't work. But you're already converting it, which is why everything stays in the range you'd expect.
    "Weirdness" solved.
    If I use the double array or the byte array, how can I implement some effects like echo or reverb? I understand that since the "raw data" provides amplitude, I can get it's frequency and there is some FFT involved. All I can see here is determining the pitch of the sound but still, no effects. I'm still confused on where to start. Well, it depends on the effect. I'm not an effects expert, so you'll probably want to go do some Google-ing for what all of the affects are...but I think I can explain an echo.
    Echo is a function of a variable, decay, which is how quickly an echo will fade away. From a physics perspective, think of decay as friction, it'll eventually stop a moving object.
    So, you might implement an echo kinda like the following
    for (int i = 0; i < buffer.length; i++) {
         double threshhold = 0.01;
         double decay = 0.5;
         double echo = sample;
         int j = i+1;
         while((Math.abs(echo) > threshhold) && (j < buffer.length)) {
              buffer[j++] += echo;
              echo *= decay;
    Where some decreasing-fraction of a sample is added to all samples in the future until it drops below some threshhold.
    That may or may not be an "echo" effect, necessarily, as I think that a "true" echo also has a peroid (the delay between the sound and its echo) that I'm not taking into effect, so that effect is probably more like overdrive...but it illistrates the point. You'll have to figure out what each effect "adds" or "subtracts" from the sound, and then loop-through the sound data sequentially adding the effects of the effect.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How do I record my voice and other sounds using the microphone in my HP TouchSmart 15?

    I just recently got an HP TouchSmart 15 notebook PC and know very little about how to use it.  I'd like to use the onboard microphone to record my voice and other sounds, ending up with sound files that I can save and use in creating multi-media presentations.  Thanks for helping me learn how to do that!

    Hi,
    You can use Windows "Sound Recorder'
    Start Sound Recocrder
    Speak, Sing or may noises
    And stop when finish
    Save file
    To start Sound Recorder
    Windows 7: Click Start > All Programs > Accessories > Sound Recorder
    Windows 8 & 8.1: Hold down Win key then press Q > Type Sound R in Search box
    Regards.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • How to get / view Java Sound source code

    Hi All,
    I'm curious to view the Java Sound source code, is that possible? Let me know what I have done so far,
    1. In eclipse I have mapped the src.zip from the JDK directory, now I am able to view most of the source code.
    2. When I try to view AudioSystem.getProviders method it returns value from JDK13Services.getProviders
    But I dont have source code for JDK13Services class, indeed i don't have com.sun.media package source code, in the src.zip
    Do anyone know how to get com.sun.media package source code?
    Thanks in advance,
    Karthikeyan R

    It appears that the 3rd entry of this search
    [http://www.google.com/search?q=JDK13Services]
    give both the javadoc and source for JDK13Services, as follows:
    [http://www.docjar.org/docs/api/com/sun/media/sound/JDK13Services.html]
    The other search listings appear to contain useful information, also.

  • How to read some records from a text file into java(not all records)

    hello,
    how to read text files into java. i need only few records from the text file not all records at a time.
    If any one knows plz reply me
    my id is [email protected]

    this snipet reads a text file line by line from line 1 to 3
    try {
                  FileReader fr = new FileReader(directory);
                  BufferedReader br = new BufferedReader(fr);
                  int counter = 0;
                  while ((dbconn = br.readLine()) != null) {
                      switch(counter){
                          case 0:
                            status = dbconn;
                          break;
                          case 1:
                            userName = dbconn;
                          break;
                          case 2:
                            apword = dbconn;
                          break;
                      counter++;
                  br.close();
        }catch(IOException e){
        }

  • Voice chat using Sound API?

    Hi there,
    I'm a university student, trying to find a way to create an application in java with voice chat feature. It will actually be a call center simulator app consisting of two parts, a server and a client part:
    The multithreaded server manages the clients, and the JPA database;
    The client's job is to login to the server, and then he'll get a randomly selected person's data and phone number by the server - in this case, IP address is the phone number, and the person is another available client. Then he can call that person, ask the questions regarding for example, a bank card (if it is a bank's call center), jot down the answers to a form, and then hang up; then the client will send said person's data to the server, who updates it in the database.
    For the voice chat part, I want to use the Java Sound API, and I've found this example:
    [Voice Chat Using Java|http://javasolution.blogspot.com/2007/04/voice-chat-using-java.html]
    But although this example works, there's a delay of 1.5 - 2 seconds in the audio.
    My questions are:
    - Is it a good idea to implement a voice chat feature using the Java Sound API, something similar to the example above on the link?
    - Is it possible to somehow fix that delay? if yes, then how?
    Also, how would you imagine/structure a program like that?
    Let me remind you that it's only a simulation, and we're not talking about actual phone-to-net calls or something like that; only LAN and internet calls, so clients should need no more than a microphone and a speaker to work with it, and also, the server shouldn't need extra hardware,too.
    Thank you in advance for your replies,
    Ben Dash
    university student

    bendash wrote:
    My questions are:
    - Is it a good idea to implement a voice chat feature using the Java Sound API, something similar to the example above on the link?If you need to do the voice chat in Java for whatever reason, then yes...
    - Is it possible to somehow fix that delay? if yes, then how?From what I saw from glancing at that code, it's transporting the audio streams via a TCP stream. TCP streams retransmit data when it's lost, which is actually something that you don't want in a real-time application. If you lose some packets with audio data, and those are retransmitted, your receiver is getting progressively more and more behind (because the audio stream has to wait for the missing bytes to arrive before it can continue.
    For a simple application like yours, your best bet would be to divide the audio stream into buffer-sized chunks (1024 bytes might be a good buffer size), and transmit those in UDP packets. Make sure to add a packet number to the UDP packets. On the other end, just write some code so that out of order packets are ignored (so if packet 4 arrives after packet 6, for instance, you drop that packet rather than playing it after 6... so you'd get 123(silence)567...

  • Simple Java Sound Question...

    Can I draw waveforms while capturing data? If yes, how. If no, why.
    Thanks. I need the answer ASAP, please help.

    Hi nfactorial,
    Can I draw waveforms while capturing data?If you would like to do that in Java you would need to know about how to use the Java language in general and especially about the Java Sound and Java2D APIs.
    If yes, how.It would be too much to explain to answer such a general question. A general answer is, you need to use the Java Sound API to capture the data for which a waveform should be drawn. The Sound API delivers data as a stream of bytes typically encoded in pulse coded modulation (PCM) format. The data stream has digital samples each representing a level of sound pressure for a certain point in time. The stream of samples in the amplitude/time domain need to be transformed to a spectrum of samples in the amplitude/frequency domain, i.e. a number of PCM samples need to be mapped to the frequencies that should be displayed. This is done with the fast fourier transformation algorithm. Each set of amplitude/frequency values can then be displayed as a waveform by using some line drawing logic. The entire process would need to run constantly, i.e. as bytes are received from the sound data stream transformation and drawing is triggered.
    Related readings:
    Java Tutorial
    http://java.sun.com/docs/books/tutorial/
    Java Sound Documentation
    http://java.sun.com/j2se/1.5.0/docs/guide/sound/index.html
    Java Sound API Programmer's Guide
    http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/contents.html
    Java Sound Resources
    http.//www.jsresources.org
    Java 2D Graphics Tutorial
    http://java.sun.com/docs/books/tutorial/2d/index.html
    Wikipedia on fast fourier transformation
    http://en.wikipedia.org/wiki/Fast_fourier_transform
    HTH
    Ulrich

  • How to filter Multiple channels without losing outputs

    Hello all, this really is my last hope. I'm having a real big issue in Logic, it's been that way since I started and I'm hoping someone help me. The issue is the same with every track I create, and is as follows:
    An example I will use is the main 'drop' of a track. I want to have most elements gradually filtering out, to allow an emphasis when the beat kicks back in at the drop. At the same time, I want to leave some elements playing, such as reverse cymbal, rise/swoosh/sweep sounds etc. The problem I have is how to select multiple items to filter out, using ONE filter (eg. Beats & bass) and not have to put a filter on EVERY individual track and automate them individually.
    I know one option would be to send all of these items to a bus, and then filter that bus, but then that means that the elements are playing from TWO sound sources - their original channel strip AND the bus that they are now assigned to.
    I know this problem can be alleviated by removing the output from the original channel strips, and only have their sound coming from the BUS, but then this causes the problem of loss of impact/volume because I'm losing the original sound source.
    Lots of my sounds are sent together to busses, eg. BeatsBus. BassBus etc. where they all gather and are compressed together creating extra volume and compression effect.
    Hopefully I have explained myself well enough here, it's not the easiest problem to articulate over a message.
    But to recap, I want to filter multiple sounds (beats, bass and everything else) with one filter, without losing my MULTIPLE sound sources, ie their original channel strip output.
    Please please help.
    Steven.

    Dont use a send to get the tracks to the bus. Assign the tracks OUTPUTS (should say "stereo out" before you change it)  directly to the busses.

  • How can Filter ADF BC LOV values in ADF Faces UI?

    How can Filter ADF BC LOV values in ADF Faces UI?
    Hi i am bit struggle with filtering LOV values in ADF Faces UI.
    I have table In UI ,that is from ADF BC .Now i am Filtering that table data using Select one choice in same page.That SOC is named Type App:  ,So according to selection of Type in SOC table have to display.This portion is done.But my requirement is ,when i got perticular result table ,i want to add one more row related to that type only,so for that i had take popup and drag datacontrol as a form.In that form first column is Select one choice ,select Items will come from BC table.So here i want to filter those LOV values according selection in Type SOC.Suppose Type SOC contain Type1,Type2 values,then when i am selectin Type1,Type1 related date willl diplay on table,now click on ADD button popup will open and in that Type SOC will Dispaly only Type1 related values not Type 2 type values.Type1,Type2 values come from same Table.
    Here i am asking every one,please do help.

    fyi
    The HR schema I used to build the example application had some modifications in the context of https://tuhra2.samplecode.oracle.com/ .
    So after running "demo/schema/mksample" as documented in "Resetting Sample Schemas" ...
    at http://download.oracle.com/docs/cd/E11882_01/server.112/e10831/installation.htm#I6236
    ... I got "java.sql.SQLSyntaxErrorException: ORA-00904: "EMPLOYEES"."MODIFIED_DATE": invalid identifier ", using the example application in BindVarDefaultsInUIApp-v0.02.zip .
    So, I have updated the example application to match the reset HR schema:
    - see http://www.consideringred.com/files/oracle/2010/BindVarDefaultsInUIApp-v0.03.zip
    - see screencast at http://screencast.com/t/gd6zKn63j
    Because Re: af:table filter date format : task-flow navigation issue to get feedback, I created service request 3-2193340441 using My Oracle Support about (q1) and (q2).
    regards
    Jan

  • Content filter on adobe containing java

    Concerning the adobe / java vulnarability.
    Does anybody know if it is possible to configure ironport to filter .pdf attachements with java?
    http://isc.sans.org/diary.html?storyid=5902

    You could test this by setting up a filter to look for a mime type attachment application/javascript.
    PDF files are "application/pdf". They can contain embedded JavaScript, just as "text/html" files can. The media type "application/javascript" is for files that contain only JavaScript.
    As to whether or not it is possible to detect a PDF with embedded JavaScript, that's for someone else to answer. It depends on how deeply, if at all, AsyncOS looks into PDFs. If you can do simple string matching against the contents of a PDF, and if JavaScript has some distinguishing string that you can look for, then that should be good enough. But I don't know enough about the internals of either AsyncOS or PDF to answer either one of those two "ifs".

  • Question about Java Sound example?

    Hello,
    I found this example AudioPlayer, when searching for an example of how to play .wav files in Java.
    The code seems quite long, and wondered if anyone could advise if this is the best way to play a wav file?
    And could anyone explain if the EXTERNAL_BUFFER_SIZE should allows be set to 128000;
    Thank you
    import java.io.File;
    import java.io.IOException;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.SourceDataLine;
    public class SimpleAudioPlayer
         private static final int     EXTERNAL_BUFFER_SIZE = 128000;
         public static void main(String[] args)
                We check that there is exactely one command-line
                argument.
                If not, we display the usage message and exit.
              if (args.length != 1)
                   printUsageAndExit();
                Now, that we're shure there is an argument, we
                take it as the filename of the soundfile
                we want to play.
              String     strFilename = args[0];
              File     soundFile = new File(strFilename);
                We have to read in the sound file.
              AudioInputStream     audioInputStream = null;
              try
                   audioInputStream = AudioSystem.getAudioInputStream(soundFile);
              catch (Exception e)
                     In case of an exception, we dump the exception
                     including the stack trace to the console output.
                     Then, we exit the program.
                   e.printStackTrace();
                   System.exit(1);
                From the AudioInputStream, i.e. from the sound file,
                we fetch information about the format of the
                audio data.
                These information include the sampling frequency,
                the number of
                channels and the size of the samples.
                These information
                are needed to ask Java Sound for a suitable output line
                for this audio file.
              AudioFormat     audioFormat = audioInputStream.getFormat();
                Asking for a line is a rather tricky thing.
                We have to construct an Info object that specifies
                the desired properties for the line.
                First, we have to say which kind of line we want. The
                possibilities are: SourceDataLine (for playback), Clip
                (for repeated playback)     and TargetDataLine (for
                recording).
                Here, we want to do normal playback, so we ask for
                a SourceDataLine.
                Then, we have to pass an AudioFormat object, so that
                the Line knows which format the data passed to it
                will have.
                Furthermore, we can give Java Sound a hint about how
                big the internal buffer for the line should be. This
                isn't used here, signaling that we
                don't care about the exact size. Java Sound will use
                some default value for the buffer size.
              SourceDataLine     line = null;
              DataLine.Info     info = new DataLine.Info(SourceDataLine.class,
                                                                 audioFormat);
              try
                   line = (SourceDataLine) AudioSystem.getLine(info);
                     The line is there, but it is not yet ready to
                     receive audio data. We have to open the line.
                   line.open(audioFormat);
              catch (LineUnavailableException e)
                   e.printStackTrace();
                   System.exit(1);
              catch (Exception e)
                   e.printStackTrace();
                   System.exit(1);
                Still not enough. The line now can receive data,
                but will not pass them on to the audio output device
                (which means to your sound card). This has to be
                activated.
              line.start();
                Ok, finally the line is prepared. Now comes the real
                job: we have to write data to the line. We do this
                in a loop. First, we read data from the
                AudioInputStream to a buffer. Then, we write from
                this buffer to the Line. This is done until the end
                of the file is reached, which is detected by a
                return value of -1 from the read method of the
                AudioInputStream.
              int     nBytesRead = 0;
              byte[]     abData = new byte[EXTERNAL_BUFFER_SIZE];
              while (nBytesRead != -1)
                   try
                        nBytesRead = audioInputStream.read(abData, 0, abData.length);
                   catch (IOException e)
                        e.printStackTrace();
                   if (nBytesRead >= 0)
                        int     nBytesWritten = line.write(abData, 0, nBytesRead);
                Wait until all data are played.
                This is only necessary because of the bug noted below.
                (If we do not wait, we would interrupt the playback by
                prematurely closing the line and exiting the VM.)
                Thanks to Margie Fitch for bringing me on the right
                path to this solution.
              line.drain();
                All data are played. We can close the shop.
              line.close();
                There is a bug in the jdk1.3/1.4.
                It prevents correct termination of the VM.
                So we have to exit ourselves.
              System.exit(0);
         private static void printUsageAndExit()
              out("SimpleAudioPlayer: usage:");
              out("\tjava SimpleAudioPlayer <soundfile>");
              System.exit(1);
         private static void out(String strMessage)
              System.out.println(strMessage);
    }

    I didnot go thru the code you posted but I know that the following workstry {
            // From file
            AudioInputStream stream = AudioSystem.getAudioInputStream(new File("audiofile"));
            // From URL
            stream = AudioSystem.getAudioInputStream(new URL("http://hostname/audiofile"));
            // At present, ALAW and ULAW encodings must be converted
            // to PCM_SIGNED before it can be played
            AudioFormat format = stream.getFormat();
            if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
                format = new AudioFormat(
                        AudioFormat.Encoding.PCM_SIGNED,
                        format.getSampleRate(),
                        format.getSampleSizeInBits()*2,
                        format.getChannels(),
                        format.getFrameSize()*2,
                        format.getFrameRate(),
                        true);        // big endian
                stream = AudioSystem.getAudioInputStream(format, stream);
            // Create the clip
            DataLine.Info info = new DataLine.Info(
                Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize()));
            Clip clip = (Clip) AudioSystem.getLine(info);
            // This method does not return until the audio file is completely loaded
            clip.open(stream);
            // Start playing
            clip.start();
        } catch (MalformedURLException e) {
        } catch (IOException e) {
        } catch (LineUnavailableException e) {
        } catch (UnsupportedAudioFileException e) {
        }

  • Audio capture delayed with Java Sound and JWS

    Hi.
    I am experiencing quite a strange problem with Java Sound in my Java Web Start application. I am acquiring sound from the microphone through Java Sound, using a code which looks like this:
    ==============================
    AudioFormat audioFormat = new AudioFormat(11025, 8, 1, true, false);
    // Get a TargetDataLine from the appropriate mixer
    DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, audioFormat);
    TargetDataLine targetDataLine = (TargetDataLine) AudioSystem.getLine(dataLineInfo);
    // Prepare the line for use
    targetDataLine.open(audioFormat);
    targetDataLine.start();
    targetDataLine.addLineListener(myLineListener);
    // Build an input stream from the line
    AudioInputStream audioInStream = new AudioInputStream(targetDataLine);
    // Create the output file
    File outputFile = new File("C:\\MySampleAudioFile.wav");
    // Start the actual audio file-writing operation
    AudioFileFormat.Type targetFileFormatType = AudioFileFormat.Type.WAVE;
    AudioSystem.write(audioInStream, targetFileFormatType, outputFile);
    ==============================
    This code is executed in an independent thread. As you can see from the code reported above, I add a LineListener to my TargetDataLine.
    The problem is that in my JWS application several seconds (about 5-6 seconds) elapse from the call to AudioSystem.write() and the reception of the START LineEvent on my LineListener. This delay only occurs when my JWS application is downloaded from my public internet website, while it is not present when I test my JWS application on my local LAN server.
    It looks like the call to AudioSystem.write() causes some kind of network connection to the remote web server of the JWS app, and this operation takes some time. In fact, if I download my JWS app to my client from the public web server, then I disable all network connections on my client, then the START event is received immediately after the call to AudioSystem.write()... This is STRANGE, isn't it???
    Do you believe the call to AudioSystem.write(), or any other Java Sound call, may cause a network connection to the server from which the JWS application has been downloaded?
    A final addition to the above picture: I also have a "Java Applet" version of this application, which is exactly identical to the JWS version and uses the same exact code to do audio acquisition from the microphone. But, in this case the delay is not present, even when running the applet from the public web server!
    Any help / suggestion would be highly appreciated.
    Best regards,
    Marco.

    Hi
    Just Visit the following link and download sample source code for rtp in java
    http://javasolution.blogspot.com/2007/04/rtp-using-java.html
    if u want know basic simple java voice chat then visit
    http://javasolution.blogspot.com/2007/04/voice-chat-using-java.html

  • How do you put Voice Memos from iPhone to computer?

    I've had a very long chat with Apple Support and they don't seem to know the answer.
    My voice memos are important and are above 30MB so emailing isn't an option.
    I first synced my memos to my iTunes as usual (music doesn't sync with the library, bear in mind) and expected all my memos to appear, however they didn't. They appeared in the "on my device section" but I couldn't play them as the exclamation point appeared.
    Under Apple's instruction I updated to the new iTunes, and now the previous memos don't even appear in the "on my device" section. They said it's likely to do with ios 8. The memos I want were created in ios 8. And now they've randomly been duplicated on my phone so I have two of each?
    So after this iTunes update, I made a new memo, which again was duplicated, but now appears in the "on my device" part.
    What do I do to put the memos onto my computer somehow? I really need them!

    The following is pre iOS 8 but may have something that you missed: http://www.macworld.co.uk/how-to/iosapps/transfer-voice-memos-from-iphone-to-com puter-3526349/
    One new thing I learned from it is that Evernote which I use for keeping some text notes in sync among various devices has a voice memo capability. Those would be automatically transferred. Here is some more information on that if you want to check it out for future use: https://evernote.com/contact/support/kb/#!/article/28606837

Maybe you are looking for

  • Restore to new host from tape, can't find autobackups

    Thankfully this is just a test, but I'm having trouble restoring a cold backup from a production host to a test/dev host. I tried the following: rman target / RMAN> set dbid 1600196320; executing command: SET DBID RMAN> startup nomount; startup faile

  • Table for Variants

    Hi, In our project, SAP User ids are being revamped and the user ids after the revamp will have a different nomenclature. Say for eg, today a user id is TKUABC, after the revamp it will be something else. Because of this there is an impact on batch j

  • Change the Iview Size

    Hi Experts, I would Like To set iviews At Various Sizes in my Potal Page. Plz Help Me Out. Thanks.

  • Raising alert in BPM

    Hi Folks I have a scenario in which i have to merge three files  in BPm and generate an Idoc  MY BPM has >>>>3  recieve steps in a fork                                   1  transformation step                                   1 send Step            

  • GSS- Performance Testing

    Hi Gilles, Our client is planning to deploy GSS in the Production environment.Before that they want to test GSS performance.IS there any tool to generate DNS trafiic hitting the GSS or is there any other way to test the GSS performance ? please adivs