目录
1.蓝牙优化
1.打开sco
2.外放时的蓝牙的不同版本适配
2.微软文本转语音优化
1.异步文本转语音
2.语音的个性化
上一篇关于语音识别, 虽然能用,但在系统适配,机器适配方面,速度,性能等还是有优化的地方.所以这篇是关于这些的.
1.蓝牙优化
- A2DP:是一种单向的高品质音频数据传输链路,通常用于播放立体声音乐;
- SCO: 则是一种双向的音频数据的传输链路,该链路只支持8K及16K单声道的音频数据,只能用于普通语音的传输
1.打开sco
默认sco是关闭的,所以对手机说话可以录音,但对蓝牙就不行了,所以要打开,然后就可以对蓝牙说话,手机一样可以收到声音,然后识别.
//启用蓝牙录音
private fun setAudioDevice() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
var speakerDevice: AudioDeviceInfo? = null
val devices = audioManager!!.availableCommunicationDevices
for (device in devices) {
if (device.type == AudioDeviceInfo.TYPE_BLUETOOTH_SCO) {
speakerDevice = device
break
}
}
if (speakerDevice != null) {
val result: Boolean = audioManager!!.setCommunicationDevice(speakerDevice)
if (result) {
}
}
} else {
audioManager!!.startBluetoothSco()
audioManager!!.isBluetoothScoOn = true
}
}
蓝牙的恶心之处就是android系统更新,几乎每一版都涉及到蓝牙硬件的变动.
上面的代码不适合外放的状态,因为外放是把蓝牙关了.