Re: Bluetooth Headset - Voice Commands

2007-03-05 Thread Nils Faerber
Sorry for beeing late here ;)

Mike Hodson schrieb:
> On 2/28/07, Jonathon Suggs <[EMAIL PROTECTED]> wrote:
[...]
> By being connected to the USB bus, this works exactly like every
> current Linux computer with bluetooth: as of now, the BlueZ stack can
> do SCO / headset, and they are working daily on properly working A2DP
> (advanced audio) stereo codec support both as alsa modules.  It would
> then be my guess, that all the OpenMoko software would have to do, is
> change the alsa input/output by responding handsfree button or avrcp
> commands (for stereo headsets).

SCO uses another transfer interface than A2DP - A2DP runs through the
normal data channel und SCO audio is routed through a synchronous
channel though also ending up somewhere else, namely the PCM interface
of the BT chipset.
The PCM interface can be routed either to HCI (the host controller
interface) or a dedicated PCM output of the chipset. This can be used on
dedicated hardware to channel the PCM data directly to some audio codec
and amplifier not wasting HCI bandwidth and making building headsets
easier ;)
Some chipsets can have this routing hardwired to PCM so that you will
never be able to get the SCO audio data into your software.

So buttomline here is that it largely depends on the BT chipset and its
firmware if or if not the SCO data can be routed to HCI.

Since AFAIK the NEO will use a CSR chipset the probability is high that
it can be rerouted if HCI is not yet default.

For A2DP the whole thing is easier since A2DP is always a normal data
connection sending out audio data packets through userspace.

> Furthermore, it is definitely plausible that the bluetooth controller
> in your pocketpc is somehow intertwined with the GSM chipset.  If this
> chip has no provision of routing audio into the software, and only
> considers bluetooth a voice service, then it would talk directly to
> the wireless interface and its GSM chip. The windows mobile/ppc
> software can't grab it.

In theory this could be possible, if the GSM chipset has a matching PCM
input.

[...]

> Mike
Cheers
  nils faerber

-- 
kernel concepts GbRTel: +49-271-771091-12
Sieghuetter Hauptweg 48Fax: +49-271-771091-19
D-57072 Siegen Mob: +49-176-21024535
--

___
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: Bluetooth Headset - Voice Commands

2007-03-01 Thread Jonathon Suggs

Mike Hodson wrote:

On 2/28/07, Jonathon Suggs <[EMAIL PROTECTED]> wrote:


The reason that I ask is that on my PocketPC phone (iMate PDA2K), there
is supposedly a hardware limitation that will not allow for this to
occur.  It can have the bluetooth headset button initiate the program,
but it cannot use the bluetooth headset to transfer the audio to the
program.  It has to use the built-in microphone for routing audio to the
voice command software.  I don't remember specifics, but I think it was
because the bluetooth module tied to the gsm module in hardware or
something along those lines.

All of that to ask, is the bluetooth implementation on this device going
to have that same limitation?  I was looking through the wiki and
noticed the bluetooth is connected to the USB Host Controller...so I am
hopeful it won't suffer the same limitation.


I'm going out on a limb here and hypothesizing again, however it may
shed some light:

My understanding of how the OpenMoko software stack works, is that it
will be using some a software audio routing interface, either direct
ALSA or gstreamer (tied into ALSA as the audio access method). The
audio can go between the mic/speaker thru the wolfson codec, or you
can  switch it to the bluetooth device.

By being connected to the USB bus, this works exactly like every
current Linux computer with bluetooth: as of now, the BlueZ stack can
do SCO / headset, and they are working daily on properly working A2DP
(advanced audio) stereo codec support both as alsa modules.  It would
then be my guess, that all the OpenMoko software would have to do, is
change the alsa input/output by responding handsfree button or avrcp
commands (for stereo headsets).

That sounds reasonable and based on what I can see about the hardware in 
the wiki seems correct.  So unless someone sees a problem, then I think 
we are good to go with that.


So, somewhere in the configuration there needs to be a setting for 
handling BT headset (and button presses).  The first thing should be a 
checkbox for "Respond to Headset Presses"  then if it is checked, then 
it will have a box for a command to run.  The command would be (from my 
previous example) "/path/to/VoiceControl".  I guess there should also be 
another checkbox for "Route Audio to Headset" which would do just that.  
Allowing my previous scenario of being able to initiate voice commands 
from the BT headset possible.


Does this make sense to everyone?

The reason I think this is so useful is that it can make the phone (with 
a BT headset) operateable without having to ever touch it (useful while 
driving).  You could have the phone docked and say "Run GPS" or "Call 
John Smith" or "Show John Smith" or "Directions to John Smith" and it 
take the appropriate action all while keeping you eyes on the road.  
There are plenty of other possibilities, but those are just the ones 
that I find useful.


___
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: Bluetooth Headset - Voice Commands

2007-02-28 Thread Mike Hodson

On 2/28/07, Jonathon Suggs <[EMAIL PROTECTED]> wrote:


The reason that I ask is that on my PocketPC phone (iMate PDA2K), there
is supposedly a hardware limitation that will not allow for this to
occur.  It can have the bluetooth headset button initiate the program,
but it cannot use the bluetooth headset to transfer the audio to the
program.  It has to use the built-in microphone for routing audio to the
voice command software.  I don't remember specifics, but I think it was
because the bluetooth module tied to the gsm module in hardware or
something along those lines.

All of that to ask, is the bluetooth implementation on this device going
to have that same limitation?  I was looking through the wiki and
noticed the bluetooth is connected to the USB Host Controller...so I am
hopeful it won't suffer the same limitation.


I'm going out on a limb here and hypothesizing again, however it may
shed some light:

My understanding of how the OpenMoko software stack works, is that it
will be using some a software audio routing interface, either direct
ALSA or gstreamer (tied into ALSA as the audio access method). The
audio can go between the mic/speaker thru the wolfson codec, or you
can  switch it to the bluetooth device.

By being connected to the USB bus, this works exactly like every
current Linux computer with bluetooth: as of now, the BlueZ stack can
do SCO / headset, and they are working daily on properly working A2DP
(advanced audio) stereo codec support both as alsa modules.  It would
then be my guess, that all the OpenMoko software would have to do, is
change the alsa input/output by responding handsfree button or avrcp
commands (for stereo headsets).

Furthermore, it is definitely plausible that the bluetooth controller
in your pocketpc is somehow intertwined with the GSM chipset.  If this
chip has no provision of routing audio into the software, and only
considers bluetooth a voice service, then it would talk directly to
the wireless interface and its GSM chip. The windows mobile/ppc
software can't grab it.

Please keep in mind, this is speculation, however knowing how my
linuxbox works with bluetooth audio is the background for my educated
guess :)

The pocketpc routing is probable, but again speculation. If I'm wrong,
please let me know :)

Mike

___
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Bluetooth Headset - Voice Commands

2007-02-28 Thread Jonathon Suggs
I know we never came to an official conclusion on the voice command 
question, but I'm going to intentionally jump ahead and ask another 
question concerning Bluetooth.  So for the sake of the question, lets 
assume we have a program called VoiceControl that handles taking spoken 
commands and taking appropriate action...and we'll assume its an awesome 
program too.


When there is no call currently in progress, can we press the button on 
the headset and have that do two things.  First, route the audio input 
and output to the Bluetooth headset and secondly call VoiceControl?  
That way when driving/walking I could have the phone docked/cradled/in 
my pocket and when I wanted to make a phone call, I could simply press 
the bluetooth headset button and say "Call [whoever]" and the phone 
automatically dial [whoever].


The reason that I ask is that on my PocketPC phone (iMate PDA2K), there 
is supposedly a hardware limitation that will not allow for this to 
occur.  It can have the bluetooth headset button initiate the program, 
but it cannot use the bluetooth headset to transfer the audio to the 
program.  It has to use the built-in microphone for routing audio to the 
voice command software.  I don't remember specifics, but I think it was 
because the bluetooth module tied to the gsm module in hardware or 
something along those lines.


All of that to ask, is the bluetooth implementation on this device going 
to have that same limitation?  I was looking through the wiki and 
noticed the bluetooth is connected to the USB Host Controller...so I am 
hopeful it won't suffer the same limitation.


___
OpenMoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community