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

烦躁

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