I'm working on a project where I need to use a microphone as input for a mobile application, this microphone will send data over BLE. So I'm wondering is that possible, because in some specifications of BLE on the internet they said that the BLE doesn't support the voice capability, so please what is exactly the voice capability in Bluetooth Low Energy.
Thank you in advance.
BLE does not support transmission of voice and there is no standard way. You may need to implement a custom profile or service as per your use case. Vendors like TI offer custom profile that utilizes the GATT layer of the BLE5-Stack to transmit voice frames. This is known as a Voice over GATT Profile approach (VoGP).
However, in the beginning of 2020, Bluetooth SIG announced about LE audio. The Classic Audio operates on the Bluetooth Classic radio while LE Audio operates on BLE. LE Audio will allow the protocol to carry audio and also adds features like Audio Sharing(one set of headphones connecting to multiple audio sources or multiple headphones connecting to one source) and help in development of hearing aids, however it will take time for LE audio to materialize or for devices to support this. Bluetooth SIG plans to release LE Audio specifications over the first half of 2020.
Few references are as below :
TI Custom profile
BLE Technical details
LE Audio (Bluetooth SIG)
LE Audio (Wiki)
LE Audio Spec release timeline
Related
This article describes my main annoyance with Bluetooth: They are perfectly fine for listening to music with AptX (and the new LC3).
But till now, it was impossible to replace a "traditional" headset (whether wired or with a proprietary USB dongle) with a bluetooth headset because as soon as you activate the mic, it switches to the HSP/HFP profiles, which use low bitrate, bad codec mono audio, and quality drops to terrible.
That means I can't drop into discord and watch a movie. (Well I can, but audio will suck)
Has there been any progress on this with Bluetooth 5.x / Bluetooth LE Audio? Have the HSP/HFP profiles been updated to also use LC3, or are there new bi-directional profiles?
The LE audio website hilariously only focuses on hearing aids. The information content regarding microphone quality is damn near 0 (and the spec isn't out yet), but in one side remark of a talk there was a slight hint that microphone quality could be better.
This impression is aided by the new architecture allowing high quality audio and some microphone transmission simultaneously. The use case presented was talking to a voice assistant while listening to music, but one can hope it'll also apply to acceptable quality voice calls.
However, as for some reason regarding the topic, none of the so far available press releases by Qualcomm or Nordic Semiconductor are mentioning this as a feature.
there seems to be an extension called FastStream, which supports a voice backchannel in A2DP.
In that reddit post is a non authorative, non-exhaustive list of supported features per device. None of my BT headphones support FastStream, so I can not test that.
Can anyone please elaborate following questions?
How bluetooth stack handles audio data?
How audio commands are processed?
Did we need any service to process audio data?
Thanks in advance.
Basically, voice commands over BLE require:
some audio codec for reducing required bandwidth (ADPCM and SBC are common, OPUS is emerging),
some audio streaming method through BLE,
decoding and getting the audio stream from BLE daemon to a command processing framework.
In the android world, command processing framework is google sauce (closed) that most easily gets its audio from an ALSA device. What is left to be done is getting audio from the remote to an ALSA device.
So for audio streaming, either you:
use a custom L2CAP channel or a custom GATT service, this requires a custom android service app and/or modifications to Bluedroid to handle those, it will need a way to inject audio stream as ALSA, most probably with a "loop" audio device driver,
declare audio as custom HID reports, this way, Bluedroid injects them back to the kernel, then add a custom HID driver that processes these reports and exposes an audio device.
Audio over BLE is not standard, so all implementations do not do the actual same thing. In Nexus Player case, implementation uses HID: It streams an ADPCM audio stream, chunked in HID reports. There is a special HID driver "hid-atv-remote.c" in Android linux kernel that exposes an ALSA device in addition to input device. Bluedroid has no information about audio, all it does is forwarding HID reports from BLE to UHID.
Is there any Bluetooth Low Energy sample applications for Windows 10 universal platform? Please help me.
Bluetooth GATT is for BLE on UWP apps. There are sample code in the official document for three common GATT scenarios: retrieving Bluetooth data, controlling a Bluetooth LE thermometer device, and controlling the presentation of Bluetooth LE device data.
Besides, you can also refer to the BLE GATT Sample for Iot.
Though these are all official information about using BLE for UWP apps, I believe there are also many samples on internet written by other developers, you can search for them.
I'm working on university project that consists in audio speaker with bluetooth connected to mobile application.
I search a lot possibilities and bluetooth modules that comply my needs, but I have not found any module. I need a Bluetooth module that can receive audio and work in iOS and Android, but I see that a lot of modules with Classic Bluetooth (lowe than 3.0) do not work with iOS, but 3.0 and 4.0 version works with both but are not oriented in audio.
I'm looking for if someone can help me finding one kit with audio receive bluetooth for all plataforms intended for speaker and cheap. Or separately one bluetooth module receiver with 3.0 or upper version (because works in iOS), intended for audio streaming to an speaker, and with some UART pins (tx/rx for example) that can simplify the connection with a microcontroller. And one basic microcontroller oriented to bluetooth receives (with some bluetooth libraries) or simply to program with upp-level language. This microcontroller just receive the audio (bits) and send it to the speaker.
I read too that Smart Bluetooth or Bluetooth Low Energy works on iOS, but can't send audio, have small rate, but i think Smart Ready Bluetooth its possible, but not sure, I have just seen that supports Classic Bluetooth (oriented to audio) and Bluetooth Low Energy, it's possible sens audio with it?
In short, I'm looking for one module Bluetooth 3.o or 4.0 + EDR (that can send audio) for iOS and Android. I find HC05, CC2506X, or HC06 module, but I have read not works in iOS. And a basic microcontroller simply to program to receive this bluetooth audio to send in a speaker.
If someone know one basic kit, or useful information for me I would appreciate.
Thanks.
There is a bluetooth module BC127. it is available at Sparkfun. It dual mode. Means It can work as source and sink both.
Source means, It can Transmit Audio
Sink means, It can receive Audio
Here is link for https://learn.sparkfun.com/tutorials/understanding-the-bc127-bluetooth-module
Any Bluetooth module that acts as an A2DP Sink should work with both iOS and Android.
The specific Bluetooth version that the module implements is not important (as long as it's higher than 2.1), but it needs to be an A2DP Sink (which is only possible over classic Bluetooth)
What I want to ask is - Will a BLE device be able to answer calls, play music, etc... or that Bluetooth 4.0 is intended for a kind of NFC alternative?
Bluetooth Low Energy is part of the Bluetooth 4.0 specification. Bluetooth 4.0 includes Classic Bluetooth, Bluetooth Low Energy and Bluetooth High Speed.
Bluetooth Low Energy (BLE) uses a different radio protocol with fewer, wider channels and a lower transmission rate and power than Bluetooth Classic (although it uses the same frequencies) and most importantly it implements a different set of profiles.
Classic Bluetooth has profiles such as Serial Port Profile (SPP) and Handsfree Profile (HFP) while the most commonly used profile in BLE is the Generic Attribute profile (GATT). This profile allows for the transfer of small amounts of data at relatively low speeds and is not suitable high-bandwidth time-critical applications such as audio streaming.
Dual-mode Bluetooth chipsets that support Classic Bluetooth and BLE are available although often they can only operate in one mode at a time. Many BLE chipsets are BLE only, however as it reduces cost and complexity.
The short answer is that BLE can't support the classic Bluetooth functions you described.
Bluetooth 4.0 has all backwards compatibility with it's older versions.
BLE is a form of connect using low energy technology.
BLE = Bluetooth Low energy.
They are different technologies with different proposes. BLE tend to be used in heart rate monitors, bike computers, medicinal applications and etc. Whenever the power supply is limited.
BLE intent is not for headsets and similar devices. That's why you see on phone specifications Bluetooh 4.0 + BLE (or LE). Bluetooh is a technology, BLE is a 'protocol of communication'