Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
1ea5bb9e
Commit
1ea5bb9e
authored
Jun 04, 2025
by
pete谢兆麟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
烦躁
parent
f7fe092a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
118 additions
and
109 deletions
+118
-109
Podfile
galaxy/Podfile
+0
-1
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+12
-2
SpeechRecognitionManager.swift
...galaxy/Classes/Tools/Voice/SpeechRecognitionManager.swift
+105
-106
YHVoiceDemo.swift
galaxy/galaxy/Classes/Tools/Voice/YHVoiceDemo.swift
+1
-0
No files found.
galaxy/Podfile
View file @
1ea5bb9e
...
...
@@ -117,7 +117,6 @@ target 'galaxy' do
pod
'xxtea'
,
'1.0.2'
#代码规范
pod
'SwiftLint'
,
:configurations
=>
[
'Debug'
]
end
post_install
do
|
installer
|
...
...
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
1ea5bb9e
...
...
@@ -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 */
,
04
11DD5C2DEFF03300D8FF1C
/* nuisdk.framework in Frameworks */
,
04
B18BC22DF01EA600A287A5
/* 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
;
...
...
galaxy/galaxy/Classes/Tools/Voice/SpeechRecognitionManager.swift
View file @
1ea5bb9e
...
...
@@ -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)
//
}
//
}
//
}
galaxy/galaxy/Classes/Tools/Voice/YHVoiceDemo.swift
View file @
1ea5bb9e
...
...
@@ -7,6 +7,7 @@
//
import
UIKit
//import nuisdk
class
YHVoiceDemo
:
YHBaseViewController
{
var
start
:
UIButton
!
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment