Reading sound output in Java

L

Lew

GGolf said:
Is there a way to read the output that the speakers produce?

Are you talking about using a microphone to record the speaker sound,
and reading that in a program?
 
G

GGolf

Are you talking about using a microphone to record the speaker sound,
and reading that in a program?
Yes, but using software instead of hardware. Basically, the "Stereo Mix"
option that most systems had built-in years ago.
 
L

Lew

Yes, but using software instead of hardware. Basically, the "Stereo Mix"
option that most systems had built-in years ago.

You're contradicting yourself, or else I'm not getting you. You said "Yes" to the
microphone question, but you aren't using hardware. What?

I have no notion of what you mean by the "Stereo Mix" option.

How about you actually define for us precisely what you want to do?

Then maybe someone can help you.

Here's the thing: how else will you capture what the speakers produce if you
don't use a microphone?
 
J

Jeff Higgins

You're contradicting yourself, or else I'm not getting you. You said "Yes" to the
microphone question, but you aren't using hardware. What?

I have no notion of what you mean by the "Stereo Mix" option.

How about you actually define for us precisely what you want to do?

Then maybe someone can help you.

Here's the thing: how else will you capture what the speakers produce if you
don't use a microphone?
stereo+mix+java I suspect shows results for what he is after
a search on javasound brings much more info
 
J

Jens

Is there a way to read the output that the speakers produce?
Richard Baldwin has many fully functional and well commented examples on Java Sound.
http://www.dickbaldwin.com/tocadv.htm
Scoll down to Java Sound.

The subject of Java Sound is very large and can be a bit overwhelming for the
uninitiated.
His examples are the best I have seen on Java Sound.

Another source of information is
http://www.jsresources.org/faq.html
Treats Java Sound to great detail.

JensJ
 
J

Joerg Meier

You're contradicting yourself, or else I'm not getting you. You said "Yes" to the
microphone question, but you aren't using hardware. What?
I have no notion of what you mean by the "Stereo Mix" option.

In Windows (and. presumably, other OSs), you can record "What you hear", as
in, you can record whatever your speakers are playing. This is done on a
software level, so it works even if you have no speakers or microphones. It
seems to just intercept and copy the data that gets sent to the speaker
output. I would guess that's what he want.

Liebe Gruesse,
Joerg
 
L

Lew

Joerg said:
In Windows (and. presumably, other OSs), you can record "What you hear", as
in, you can record whatever your speakers are playing. This is done on a
software level, so it works even if you have no speakers or microphones. It
seems to just intercept and copy the data that gets sent to the speaker
output. I would guess that's what he want.

Maybe, but what he asked for was "the output that the speakers produce", not the
signal that is input to the speakers.

If he wants the signal as sent to the speakers, does he want the actual electrical
signal, decoded and turned into some file format, or does he want a copy of the
MP3 or WAV or whatever generated that signal, or what?

You can guess all you want, but absent the *OP* answering the question, it is only a guess.

As another responder said, the question is vague, and certainly ambiguous.

So, OP, how about it? Are you going to ask a good question, or give up on getting a
good answer?

The technique you use will depend on exactly what you want.
 
G

GGolf

Maybe, but what he asked for was "the output that the speakers produce", not the
signal that is input to the speakers.

Sorry for being so vague. I should have said "the signal that is input
to the speakers".
If he wants the signal as sent to the speakers, does he want the actual electrical
signal, decoded and turned into some file format, or does he want a copy of the
MP3 or WAV or whatever generated that signal, or what?

I _think_ either will do.

Let me tell you the use case: I want to
(i) capture a VOIP conversation (which could be between multiple
participants, or just two participants), and
(ii) convert that to text using a speech recognizer (using one of the
various implementations of JSAPI), and
(iii) display that text on screen.

Note that this will also mean that I should be able to capture the input
to the microphone at the same time. However, if I just get the signal
that's input to the speakers, I think that would be a great beginning -
I could at least transcribe the incoming side.
You can guess all you want, but absent the *OP* answering the question, it is only a guess.

As another responder said, the question is vague, and certainly ambiguous.

So, OP, how about it? Are you going to ask a good question, or give up on getting a
good answer?

I hope I've clarified the question at least a little more, based on your
useful hints.

I also aim to try experimenting with the Java Sound API as suggested by
JensJ and others elsethread.
 
A

Andreas Leitgeb

GGolf said:
Let me tell you the use case: I want to
(i) capture a VOIP conversation (which could be between multiple
participants, or just two participants), and
(ii) convert that to text using a speech recognizer (using one of the
various implementations of JSAPI), and
(iii) display that text on screen.

Is this going to happen real-time? (I have no idea if consumer-grade
speech-to-text is fast enough for that.)

If so, I'd use a second PC (thus with independent sound system) with
a microphone & line-in(connected to a "Y"-split of the headphones' cable)
to capture both outgoing and incoming speech.
Unless you've got some very special sound hardware on the primary (VoIP
running) machine, capturing both input and output (where input isn't
itself mixed into the output) may just not be possible.

PS: note, that recording of conversations may have legal issues, so make
sure that at the start of the recording everyone involved knows it and
agrees to it. (this may not be relevant if the signal is used *only* for
speech-to-text and displaying of text, and neither text nor signal are
saved, but I'm not a lawyer.) If you were from NSA, then you probably
wouldn't need to ask here in the first place...
 
G

GGolf

Is this going to happen real-time? (I have no idea if consumer-grade
speech-to-text is fast enough for that.)

I've seen a couple of demos where this has been done, though I guess the
participants have to speak slower than usual for the transcription to
make some sense.
If so, I'd use a second PC (thus with independent sound system) with
a microphone & line-in(connected to a "Y"-split of the headphones' cable)
to capture both outgoing and incoming speech.
Unless you've got some very special sound hardware on the primary (VoIP
running) machine, capturing both input and output (where input isn't
itself mixed into the output) may just not be possible.

Hmm...I think you got a point here. I remember that the Stereo Mix
option on Windows wouldn't record the input to the microphone unless you
would /play it back/ to the speakers.
PS: note, that recording of conversations may have legal issues, so make
sure that at the start of the recording everyone involved knows it and
agrees to it. (this may not be relevant if the signal is used *only* for
speech-to-text and displaying of text, and neither text nor signal are
saved, but I'm not a lawyer.)

Only the text is going to be displayed (the user can save the transcript
if they want, but it won't go anywhere by itself).
If you were from NSA, then you probably
wouldn't need to ask here in the first place...

True :)
 
A

Andreas Leitgeb

GGolf said:
Hmm...I think you got a point here. I remember that the Stereo Mix
option on Windows wouldn't record the input to the microphone unless you
would /play it back/ to the speakers.

The core of the problem appears to be that there is only one sound-device
on a typical system, and the mixer settings are a property of that one device,
not per-process.

If the VoIP application obviously specifically requires to record only the
microphone (in order to transmit it to the parties), then another process
cannot have its own settings to record everything.

I'm not sure if you need a recording solution for yourself, or if you
intended to create a transcription add-on to be used by Joe "VoIP" User.
If it was the latter, then I fear it won't be that easy. If you create
your own VoIP client that would be a different story, and also if there
was an existing VoIP client with a decent API for plugging into the sound
stream.
 
J

Jeff Higgins

The core of the problem appears to be that there is only one sound-device
on a typical system, and the mixer settings are a property of that one device,
not per-process.

If the VoIP application obviously specifically requires to record only the
microphone (in order to transmit it to the parties), then another process
cannot have its own settings to record everything.

I'm not sure if you need a recording solution for yourself, or if you
intended to create a transcription add-on to be used by Joe "VoIP" User.
If it was the latter, then I fear it won't be that easy. If you create
your own VoIP client that would be a different story, and also if there
was an existing VoIP client with a decent API for plugging into the sound
stream.
<http://licensing.ttu.edu/technologi...g-for-voice-over-ip-and-medical-transcription>
 
J

Jeff Higgins

Sorry for being so vague. I should have said "the signal that is input
to the speakers".


I _think_ either will do.

Let me tell you the use case: I want to
(i) capture a VOIP conversation (which could be between multiple
participants, or just two participants), and
(ii) convert that to text using a speech recognizer (using one of the
various implementations of JSAPI), and
(iii) display that text on screen.

Note that this will also mean that I should be able to capture the input
to the microphone at the same time. However, if I just get the signal
that's input to the speakers, I think that would be a great beginning -
I could at least transcribe the incoming side.


I hope I've clarified the question at least a little more, based on your
useful hints.

I also aim to try experimenting with the Java Sound API as suggested by
JensJ and others elsethread.
There may be some help around about here:
<http://cmusphinx.sourceforge.net/sphinx4/>
<http://cmusphinx.sourceforge.net/sp.../tools/audio/doc-files/HowToRunAudioTool.html>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top