Commit 1ea5bb9e authored by pete谢兆麟's avatar pete谢兆麟

烦躁

parent f7fe092a
...@@ -117,7 +117,6 @@ target 'galaxy' do ...@@ -117,7 +117,6 @@ target 'galaxy' do
pod 'xxtea', '1.0.2' pod 'xxtea', '1.0.2'
#代码规范 #代码规范
pod 'SwiftLint', :configurations => ['Debug'] pod 'SwiftLint', :configurations => ['Debug']
end end
post_install do |installer| post_install do |installer|
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
0411CF1A2D22960900644D35 /* YHGCWorkExperienceListReasonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411CF192D22960900644D35 /* YHGCWorkExperienceListReasonTableViewCell.swift */; }; 0411CF1A2D22960900644D35 /* YHGCWorkExperienceListReasonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411CF192D22960900644D35 /* YHGCWorkExperienceListReasonTableViewCell.swift */; };
0411CF1C2D2BA99500644D35 /* YHGCWorkExperienceListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411CF1B2D2BA99500644D35 /* YHGCWorkExperienceListTableViewCell.swift */; }; 0411CF1C2D2BA99500644D35 /* YHGCWorkExperienceListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411CF1B2D2BA99500644D35 /* YHGCWorkExperienceListTableViewCell.swift */; };
0411DD582DEFE92700D8FF1C /* SpeechRecognitionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411DD572DEFE90600D8FF1C /* SpeechRecognitionManager.swift */; }; 0411DD582DEFE92700D8FF1C /* SpeechRecognitionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0411DD572DEFE90600D8FF1C /* SpeechRecognitionManager.swift */; };
0411DD5C2DEFF03300D8FF1C /* nuisdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0411DD5B2DEFF03300D8FF1C /* nuisdk.framework */; };
041938712D2B722D00C7A52A /* YHGCCollegeSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041938702D2B722D00C7A52A /* YHGCCollegeSearchViewController.swift */; }; 041938712D2B722D00C7A52A /* YHGCCollegeSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041938702D2B722D00C7A52A /* YHGCCollegeSearchViewController.swift */; };
041CCDF72D7ED9030015E7BC /* YHHKVisaRenewalPaymentInfoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041CCDF62D7ED9030015E7BC /* YHHKVisaRenewalPaymentInfoList.swift */; }; 041CCDF72D7ED9030015E7BC /* YHHKVisaRenewalPaymentInfoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041CCDF62D7ED9030015E7BC /* YHHKVisaRenewalPaymentInfoList.swift */; };
041CCDF92D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041CCDF82D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift */; }; 041CCDF92D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041CCDF82D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift */; };
...@@ -1247,6 +1246,9 @@ ...@@ -1247,6 +1246,9 @@
04B00FC72D9A420F00F640C5 /* YHMakePlanPriceAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FB82D9A420F00F640C5 /* YHMakePlanPriceAlertView.swift */; }; 04B00FC72D9A420F00F640C5 /* YHMakePlanPriceAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FB82D9A420F00F640C5 /* YHMakePlanPriceAlertView.swift */; };
04B00FC82D9A420F00F640C5 /* YHMakePlanCusttomHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FB62D9A420F00F640C5 /* YHMakePlanCusttomHeadView.swift */; }; 04B00FC82D9A420F00F640C5 /* YHMakePlanCusttomHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FB62D9A420F00F640C5 /* YHMakePlanCusttomHeadView.swift */; };
04B00FCA2D9AAD6100F640C5 /* YHMakePlanTopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */; }; 04B00FCA2D9AAD6100F640C5 /* YHMakePlanTopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */; };
04B18BC12DF01DC200A287A5 /* YHVoiceDemo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B18BC02DF01DC200A287A5 /* YHVoiceDemo.swift */; };
04B18BC22DF01EA600A287A5 /* nuisdk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0411DD5B2DEFF03300D8FF1C /* nuisdk.framework */; };
04B18BC32DF01EA600A287A5 /* nuisdk.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0411DD5B2DEFF03300D8FF1C /* nuisdk.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
04D8FF552D9258AA00703C75 /* YHPlanScoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */; }; 04D8FF552D9258AA00703C75 /* YHPlanScoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */; };
04D8FF572D925A0800703C75 /* YHPlanScoreChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */; }; 04D8FF572D925A0800703C75 /* YHPlanScoreChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */; };
04D8FF592D925E6700703C75 /* YHPlanModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF582D925E6700703C75 /* YHPlanModel.swift */; }; 04D8FF592D925E6700703C75 /* YHPlanModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF582D925E6700703C75 /* YHPlanModel.swift */; };
...@@ -1308,6 +1310,7 @@ ...@@ -1308,6 +1310,7 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 10; dstSubfolderSpec = 10;
files = ( files = (
04B18BC32DF01EA600A287A5 /* nuisdk.framework in Embed Frameworks */,
04AE201B2D12D14E00891D24 /* ATAuthSDK_D.framework in Embed Frameworks */, 04AE201B2D12D14E00891D24 /* ATAuthSDK_D.framework in Embed Frameworks */,
); );
name = "Embed Frameworks"; name = "Embed Frameworks";
...@@ -2562,6 +2565,7 @@ ...@@ -2562,6 +2565,7 @@
04B00FBA2D9A420F00F640C5 /* YHMakePlanShareAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanShareAlertView.swift; sourceTree = "<group>"; }; 04B00FBA2D9A420F00F640C5 /* YHMakePlanShareAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanShareAlertView.swift; sourceTree = "<group>"; };
04B00FBB2D9A420F00F640C5 /* YHMakePlanStateHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanStateHeadView.swift; sourceTree = "<group>"; }; 04B00FBB2D9A420F00F640C5 /* YHMakePlanStateHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanStateHeadView.swift; sourceTree = "<group>"; };
04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanTopView.swift; sourceTree = "<group>"; }; 04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanTopView.swift; sourceTree = "<group>"; };
04B18BC02DF01DC200A287A5 /* YHVoiceDemo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVoiceDemo.swift; sourceTree = "<group>"; };
04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreView.swift; sourceTree = "<group>"; }; 04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreView.swift; sourceTree = "<group>"; };
04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreChart.swift; sourceTree = "<group>"; }; 04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreChart.swift; sourceTree = "<group>"; };
04D8FF582D925E6700703C75 /* YHPlanModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanModel.swift; sourceTree = "<group>"; }; 04D8FF582D925E6700703C75 /* YHPlanModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanModel.swift; sourceTree = "<group>"; };
...@@ -2614,7 +2618,7 @@ ...@@ -2614,7 +2618,7 @@
files = ( files = (
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */, 6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */,
04EA376F2BEA071600DBAF64 /* libc++.tbd in Frameworks */, 04EA376F2BEA071600DBAF64 /* libc++.tbd in Frameworks */,
0411DD5C2DEFF03300D8FF1C /* nuisdk.framework in Frameworks */, 04B18BC22DF01EA600A287A5 /* nuisdk.framework in Frameworks */,
0468D42E2B5654A500CFB916 /* CoreTelephony.framework in Frameworks */, 0468D42E2B5654A500CFB916 /* CoreTelephony.framework in Frameworks */,
04EA376D2BEA06EF00DBAF64 /* WebKit.framework in Frameworks */, 04EA376D2BEA06EF00DBAF64 /* WebKit.framework in Frameworks */,
045C13B72D12CA5F00BD2DC0 /* ATAuthSDK_D.framework in Frameworks */, 045C13B72D12CA5F00BD2DC0 /* ATAuthSDK_D.framework in Frameworks */,
...@@ -2780,6 +2784,7 @@ ...@@ -2780,6 +2784,7 @@
children = ( children = (
0411DD5B2DEFF03300D8FF1C /* nuisdk.framework */, 0411DD5B2DEFF03300D8FF1C /* nuisdk.framework */,
0411DD572DEFE90600D8FF1C /* SpeechRecognitionManager.swift */, 0411DD572DEFE90600D8FF1C /* SpeechRecognitionManager.swift */,
04B18BC02DF01DC200A287A5 /* YHVoiceDemo.swift */,
); );
path = Voice; path = Voice;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -7871,6 +7876,7 @@ ...@@ -7871,6 +7876,7 @@
045C11EB2D12CA5F00BD2DC0 /* YHPlayerControlView.swift in Sources */, 045C11EB2D12CA5F00BD2DC0 /* YHPlayerControlView.swift in Sources */,
04307B6E2D1A5F4200ED8E8D /* YHIncomeUploadWorkIDCell.swift in Sources */, 04307B6E2D1A5F4200ED8E8D /* YHIncomeUploadWorkIDCell.swift in Sources */,
045C11EC2D12CA5F00BD2DC0 /* YHMyDocumentsListViewController.swift in Sources */, 045C11EC2D12CA5F00BD2DC0 /* YHMyDocumentsListViewController.swift in Sources */,
04B18BC12DF01DC200A287A5 /* YHVoiceDemo.swift in Sources */,
045C11ED2D12CA5F00BD2DC0 /* YHCertificateEntryBottomView.swift in Sources */, 045C11ED2D12CA5F00BD2DC0 /* YHCertificateEntryBottomView.swift in Sources */,
045C11EE2D12CA5F00BD2DC0 /* YHAppointItem.swift in Sources */, 045C11EE2D12CA5F00BD2DC0 /* YHAppointItem.swift in Sources */,
041CCDF92D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift in Sources */, 041CCDF92D7EE8B90015E7BC /* YHVisaRenewalPayMemberCell.swift in Sources */,
...@@ -8522,6 +8528,7 @@ ...@@ -8522,6 +8528,7 @@
"$(PROJECT_DIR)/galaxy/Res/Frameworks", "$(PROJECT_DIR)/galaxy/Res/Frameworks",
"$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework", "$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice", "$(PROJECT_DIR)/galaxy/Classes/Tools/Voice",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice/nuisdk",
); );
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = galaxy/Res/Info.plist; INFOPLIST_FILE = galaxy/Res/Info.plist;
...@@ -8671,6 +8678,7 @@ ...@@ -8671,6 +8678,7 @@
"$(PROJECT_DIR)/galaxy/Res/Frameworks", "$(PROJECT_DIR)/galaxy/Res/Frameworks",
"$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework", "$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice", "$(PROJECT_DIR)/galaxy/Classes/Tools/Voice",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice/nuisdk",
); );
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = galaxy/Res/Info.plist; INFOPLIST_FILE = galaxy/Res/Info.plist;
...@@ -8882,6 +8890,7 @@ ...@@ -8882,6 +8890,7 @@
"$(PROJECT_DIR)/galaxy/Res/Frameworks", "$(PROJECT_DIR)/galaxy/Res/Frameworks",
"$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework", "$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice", "$(PROJECT_DIR)/galaxy/Classes/Tools/Voice",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice/nuisdk",
); );
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = galaxy/Res/Info.plist; INFOPLIST_FILE = galaxy/Res/Info.plist;
...@@ -8933,6 +8942,7 @@ ...@@ -8933,6 +8942,7 @@
"$(PROJECT_DIR)/galaxy/Res/Frameworks", "$(PROJECT_DIR)/galaxy/Res/Frameworks",
"$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework", "$(PROJECT_DIR)/galaxy/Classes/Modules/AutoLogin(一键登录)/framework",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice", "$(PROJECT_DIR)/galaxy/Classes/Tools/Voice",
"$(PROJECT_DIR)/galaxy/Classes/Tools/Voice/nuisdk",
); );
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = galaxy/Res/Info.plist; INFOPLIST_FILE = galaxy/Res/Info.plist;
......
...@@ -5,110 +5,109 @@ ...@@ -5,110 +5,109 @@
// Created by EDY on 2025/6/4. // Created by EDY on 2025/6/4.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved. // Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
// //
import nu
class SpeechRecognitionManager { // class SpeechRecognitionManager {
static let shared = SpeechRecognitionManager() // static let shared = SpeechRecognitionManager()
//
private var recognizer: NlsSpeechRecognizer? // private var recognizer: NlsSpeechRecognizer?
private var fileTrans: NlsFileTrans? // private var fileTrans: NlsFileTrans?
//
// 配置你的阿里云信息 // // 配置你的阿里云信息
private let accessKeyId = "your_access_key_id" // private let accessKeyId = "your_access_key_id"
private let accessKeySecret = "your_access_key_secret" // private let accessKeySecret = "your_access_key_secret"
private let appKey = "your_app_key" // private let appKey = "your_app_key"
//
private init() { // private init() {
setupCredentials() // setupCredentials()
} // }
//
private func setupCredentials() { // private func setupCredentials() {
let config = AlibabaCloudCredentialConfig() // let config = AlibabaCloudCredentialConfig()
config.accessKeyId = accessKeyId // config.accessKeyId = accessKeyId
config.accessKeySecret = accessKeySecret // config.accessKeySecret = accessKeySecret
//
let provider = AlibabaCloudStaticCredentialProvider(config: config) // let provider = AlibabaCloudStaticCredentialProvider(config: config)
AlibabaCloudCredential.default = provider // AlibabaCloudCredential.default = provider
} // }
} // }
//
extension SpeechRecognitionManager { // extension SpeechRecognitionManager {
func startRealTimeRecognition(resultHandler: @escaping (String?, Error?) -> Void) { // func startRealTimeRecognition(resultHandler: @escaping (String?, Error?) -> Void) {
recognizer = NlsSpeechRecognizer() // recognizer = NlsSpeechRecognizer()
//
// 配置识别参数 // // 配置识别参数
let request = NlsSpeechRecognizerRequest() // let request = NlsSpeechRecognizerRequest()
request.appkey = appKey // request.appkey = appKey
request.format = "pcm" // 音频格式 // request.format = "pcm" // 音频格式
request.sampleRate = 16000 // 采样率 // request.sampleRate = 16000 // 采样率
//
// 设置回调 // // 设置回调
recognizer?.onRecognizationStarted = { // recognizer?.onRecognizationStarted = {
print("识别开始") // print("识别开始")
} // }
//
recognizer?.onTaskFailed = { error in // recognizer?.onTaskFailed = { error in
print("识别失败: \(error.localizedDescription)") // print("识别失败: \(error.localizedDescription)")
resultHandler(nil, error) // resultHandler(nil, error)
} // }
//
recognizer?.onRecognizationCompleted = { result in // recognizer?.onRecognizationCompleted = { result in
if let text = result.result { // if let text = result.result {
print("识别结果: \(text)") // print("识别结果: \(text)")
resultHandler(text, nil) // resultHandler(text, nil)
} // }
} // }
//
recognizer?.onChannelClosed = { // recognizer?.onChannelClosed = {
print("通道关闭") // print("通道关闭")
} // }
//
// 开始识别 // // 开始识别
do { // do {
try recognizer?.start(request: request) // try recognizer?.start(request: request)
} catch { // } catch {
print("启动识别失败: \(error.localizedDescription)") // print("启动识别失败: \(error.localizedDescription)")
resultHandler(nil, error) // resultHandler(nil, error)
} // }
} // }
//
func stopRealTimeRecognition() { // func stopRealTimeRecognition() {
recognizer?.stop() // recognizer?.stop()
recognizer = nil // recognizer = nil
} // }
//
func pushAudioData(_ data: Data) { // func pushAudioData(_ data: Data) {
recognizer?.sendAudio(data: data) // recognizer?.sendAudio(data: data)
} // }
} // }
//
extension SpeechRecognitionManager { // extension SpeechRecognitionManager {
func transcribeAudioFile(fileURL: URL, completion: @escaping (String?, Error?) -> Void) { // func transcribeAudioFile(fileURL: URL, completion: @escaping (String?, Error?) -> Void) {
fileTrans = NlsFileTrans() // fileTrans = NlsFileTrans()
//
let request = NlsFileTransRequest() // let request = NlsFileTransRequest()
request.appkey = appKey // request.appkey = appKey
request.fileLink = fileURL.absoluteString // request.fileLink = fileURL.absoluteString
request.format = "pcm" // 根据实际文件格式设置 // request.format = "pcm" // 根据实际文件格式设置
request.sampleRate = 16000 // request.sampleRate = 16000
//
fileTrans?.onTaskFailed = { error in // fileTrans?.onTaskFailed = { error in
print("文件转写失败: \(error.localizedDescription)") // print("文件转写失败: \(error.localizedDescription)")
completion(nil, error) // completion(nil, error)
} // }
//
fileTrans?.onTranscriptionCompleted = { result in // fileTrans?.onTranscriptionCompleted = { result in
if let text = result.result { // if let text = result.result {
print("转写结果: \(text)") // print("转写结果: \(text)")
completion(text, nil) // completion(text, nil)
} // }
} // }
//
do { // do {
try fileTrans?.start(request: request) // try fileTrans?.start(request: request)
} catch { // } catch {
print("启动文件转写失败: \(error.localizedDescription)") // print("启动文件转写失败: \(error.localizedDescription)")
completion(nil, error) // completion(nil, error)
} // }
} // }
} // }
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
// //
import UIKit import UIKit
//import nuisdk
class YHVoiceDemo: YHBaseViewController { class YHVoiceDemo: YHBaseViewController {
var start: UIButton! var start: UIButton!
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment