Browse Source

修改讯飞语音识别

newdev_shunjiawei
tanlongsheng 10 months ago
parent
commit
f94f6caec4
  1. 6
      local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt
  2. 18
      local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/XunFeiAsrHelper.kt

6
local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt

@ -289,6 +289,12 @@ class AzureAsrHelper(private val context: Context) {
this.audioSourceType = audioSourceType
if (!audioStream.isContinuousRecognitionActive) {
// 确保音频流已初始化
if (!audioStream.isInitialized()) {
audioStream.initAudioRecord()
audioStream.setupStream()
}
audioStream.startAudioRecord(
when (audioSourceType) {
AudioSourceType.MICROPHONE -> SimpleAudioReceiver.AudioSourceType.MICROPHONE

18
local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/XunFeiAsrHelper.kt

@ -25,6 +25,13 @@ class XunFeiAsrHelper(private val context: Context) {
private var currentSessionId = ""
fun start(callback: AzureAsrHelper.ContinuousRecognizeCallback) {
try {
webSocket?.cancel()
webSocket = null
} catch (e: Exception) {
Log.e(tag, "Clear previous websocket failed: ${e.message}")
}
currentSessionId = UUID.randomUUID().toString()
val url = getWebSocketUrl()
@ -64,8 +71,15 @@ class XunFeiAsrHelper(private val context: Context) {
}
fun stop() {
webSocket?.let { ws: WebSocket ->
ws.send("{\"end\": true}")
try {
webSocket?.let { ws: WebSocket ->
ws.send("{\"end\": true}")
ws.close(1000, "User stopped")
}
} catch (e: Exception) {
Log.e(tag, "Stop Xunfei failed: ${e.message}")
} finally {
webSocket = null
}
}

Loading…
Cancel
Save