From: liangzhenying <867174124@qq.com> Date: Mon, 15 Dec 2025 10:35:19 +0000 (+0800) Subject: 骨传导AI调试 X-Git-Tag: 1.0.2~33 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.js?a=commitdiff_plain;h=9953092800a45513294bba816419bb666d7d4e78;p=mirrors%2FShenYin.git 骨传导AI调试 --- diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCBleRecord.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCBleRecord.swift index b54d987..ba9a340 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCBleRecord.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCBleRecord.swift @@ -9,15 +9,16 @@ import StarburstSdk public class DCBleRecord { public static let shared = DCBleRecord() - + var recordList : [(String,Int)] = [] + var recordText = "" public func setup(textCallback:@escaping (String)->Void){ let asr = StarburstAsrConfig() - asr.isTranslate = true; - asr.fromLanguage = "zh-CN" - asr.toLanguage = "en-US" - asr.isTTs = true - asr.ttsFormat = "mp3" +// asr.isTranslate = true; +// asr.fromLanguage = "zh-CN" +// asr.toLanguage = "en-US" +// asr.isTTs = true +// asr.ttsFormat = "mp3" StarburstSdk.shared().setupDeviceRecord(with: nil, asrConfig: asr) { config in DCLogger.debug("录音类型 \(config!.type == 0x00 ? "实时录音" : "通话录音")") } recognizeText: { [weak self] model in @@ -26,7 +27,19 @@ public class DCBleRecord { if let text = model.textResult{ DCLogger.debug("识别 = \(text)") - textCallback(text) + let msg = recordList.firstIndex (where: { (str,idx) in + return idx == model.definiteIndex; + }) + if (msg == nil) { + recordList.append((model.textResult,model.definiteIndex)) + } else { + recordList[msg!] = (model.textResult,model.definiteIndex) + } + recordText = recordList.compactMap({ (str,idx) in + return str + }).joined(separator: "\n") + + textCallback(recordText) } } stateChange: { [weak self] code in diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCChat.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCChat.swift index 896baa4..2d1d4cb 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCChat.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCChat.swift @@ -7,9 +7,36 @@ import StarburstSdk +/// Ai回应模型 +public class ChatCellModel:NSObject,NSCoding { + public var type: Int = 0//1发,0收 + public var content: String = "" + public var id:Int = 0 + + required public override init() { } + + public func encode(with aCoder: NSCoder) { + aCoder.encode("\(type)", forKey: "type") + aCoder.encode(content, forKey: "content") + aCoder.encode("\(id)", forKey: "id") + } + + required public init?(coder aDecoder: NSCoder) { + type = Int(aDecoder.decodeObject(forKey: "type") as? String ?? "0") ?? 0 + content = aDecoder.decodeObject(forKey: "content") as? String ?? "" + id = Int(aDecoder.decodeObject(forKey: "id") as? String ?? "0") ?? 0 + } +} + + public class DCChat{ public static let shared = DCChat() var speakerList = [StarbusrtSpeaker]() + + + var dataList:[ChatCellModel] = [] + public var chatStateChange:((Int)->Void)? + public var chatNeedReloadData:(()->Void)? public var dialogId = 0 public func getVcSpeekerList(finished:@escaping (Any,Bool)->Void){ @@ -36,23 +63,37 @@ public class DCChat{ StarburstSdk.shared().setupVoiceChat(with: config) { dialogId in print("开始对话 = \(dialogId)") } textCallback: {[weak self] model in - guard let model = model else { return } - self?.dialogId = model.dialogId - - if let textResult = model.textResult,textResult.count > 0 { - let text = "[send]" + model.textResult + "\n" - DCLogger.debug(text) - asrCallback(model.textResult) - } else if model.conversationFinish == true && model.responseText != nil - && model.responseText!.count > 0 - { - let text = "[send]" + model.responseText + "\n" - DCLogger.debug(text) - responseCallback(model.responseText) - } else { - return + guard let self = self else { return } + guard let textModel = model else { return } + self.dialogId = textModel.dialogId + + if let text = textModel.textResult{ + asrCallback(text) + } + else if let text = textModel.responseText{ + responseCallback(text) } +// Logger.debug(text,index) +// guard let text = text else{ +// return +// } + +// if dataList.last?.id == -1 { +// dataList.removeLast() +// } +// if let model = dataList.last,model.id == textModel.definiteIndex,model.type == 1,let text = textModel.textResult { +// model.content = text +// } +// else{ +// let model = ChatCellModel() +// model.type = 1 +// model.content = textModel.textResult ?? "" +// model.id = textModel.definiteIndex +// dataList.append(model) +// } +// chatNeedReloadData?() + } responseVoice: { [weak self] (dialogId,data, finish) in guard let self = self else { return } self.dialogId = dialogId diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCRecord.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCRecord.swift index 868d90b..2fc6c5f 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCRecord.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/DeepChordsSdk/DCRecord.swift @@ -7,7 +7,9 @@ import StarburstSdk public class DCRecord { - public static let shared = DCRecord() + public static let shared = DCRecord() + var recordList : [(String,Int)] = [] + var recordText = "" public func start(fromLanguage:String,toLanguage:String,textCallback:@escaping (String)->Void){ let config = StarburstAsrConfig() @@ -20,12 +22,26 @@ public class DCRecord { StarburstSdk.shared().startRecordAsr(config) {voiceData in //print("录音的音频流 = \(voiceData!)") } recognizeText: {[weak self] model in - DCLogger.debug(model) + guard let self = self else {return} guard let model = model else {return} - if let text = model.textResult ,model.definite{ - DCLogger.debug("确定 text = \(text)") - textCallback(text) + + if let text = model.textResult{ + DCLogger.debug("识别 = \(text)") + let msg = recordList.firstIndex (where: { (str,idx) in + return idx == model.definiteIndex; + }) + if (msg == nil) { + recordList.append((model.textResult,model.definiteIndex)) + } else { + recordList[msg!] = (model.textResult,model.definiteIndex) + } + recordText = recordList.compactMap({ (str,idx) in + return str + }).joined(separator: "\n") + + textCallback(recordText) } + // guard let self = self else {return} // self.resetTimer() // guard let model = model else {return} diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkEarPhonesAsrVC.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkEarPhonesAsrVC.swift index 162cb9c..d371c46 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkEarPhonesAsrVC.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkEarPhonesAsrVC.swift @@ -43,7 +43,7 @@ class BleSdkEarPhonesAsrVC: BaseVC { DCBleRecord.shared.setup {[weak self] text in guard let self = self else{return} - self.textView.text += text + self.textView.text = text let range = NSMakeRange(textView.text.count - 1, 1) self.textView.scrollRangeToVisible(range) } diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkPhoneAsrVC.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkPhoneAsrVC.swift index de577c7..41cbaac 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkPhoneAsrVC.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/BleSdkPhoneAsrVC.swift @@ -94,7 +94,7 @@ extension BleSdkPhoneAsrVC{ DCRecord.shared.start(fromLanguage: fromLanguage, toLanguage: toLanguage, textCallback: { [weak self] text in guard let self = self else{return} - self.textView.text += text + self.textView.text = text let range = NSMakeRange(textView.text.count - 1, 1) self.textView.scrollRangeToVisible(range) }) diff --git a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/DeviceListVC.swift b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/DeviceListVC.swift index 34efe20..ed0a221 100644 --- a/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/DeviceListVC.swift +++ b/DeepChordsSdk_iOS/DeepChordsSdk/Example/Example/VC/DeviceListVC.swift @@ -24,7 +24,7 @@ class DeviceListVC: BaseVC{ func setupViews(){ self.title = "扫描" - + self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "扫描", style: .done, target: self, action: #selector(scanAction)) tableView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height) tableView.delegate = self tableView.dataSource = self @@ -55,6 +55,9 @@ class DeviceListVC: BaseVC{ } } } + @objc func scanAction(){ + BleManager.shared.startScanDevice() + } } extension DeviceListVC:UITableViewDelegate,UITableViewDataSource { diff --git a/ShenYin/ShenYin/Api/Config.swift b/ShenYin/ShenYin/Api/Config.swift index ad0d9b3..90e740b 100644 --- a/ShenYin/ShenYin/Api/Config.swift +++ b/ShenYin/ShenYin/Api/Config.swift @@ -19,6 +19,8 @@ class DCConfig{ /// 服务器地址 // static let baseURL = "http://118.145.178.188:32000" static let baseURL = "https://app-api.deepchords.com" +// static let baseURL = "https://app-api.deepchords-ai.com" + /// 用户隐私协议地址 static let yonghuBaseURL = "https://pub-tos.deepchords.com"