1
This commit is contained in:
@@ -37,6 +37,7 @@ typedef void (^AiVMSyncCompletion)(KBAiSyncResponse *_Nullable response,
|
||||
@interface KBAiMessageResponse : NSObject
|
||||
@property(nonatomic, assign) NSInteger code;
|
||||
@property(nonatomic, strong, nullable) KBAiMessageData *data;
|
||||
@property(nonatomic, copy, nullable) NSString *message;
|
||||
@end
|
||||
|
||||
typedef void (^AiVMMessageCompletion)(KBAiMessageResponse *_Nullable response,
|
||||
@@ -47,6 +48,22 @@ typedef void (^AiVMAudioURLCompletion)(NSString *_Nullable audioURL,
|
||||
typedef void (^AiVMUploadAudioCompletion)(NSString *_Nullable fileURL,
|
||||
NSError *_Nullable error);
|
||||
|
||||
@interface KBAiSpeechTranscribeData : NSObject
|
||||
@property(nonatomic, copy, nullable) NSString *transcript;
|
||||
@property(nonatomic, assign) double confidence;
|
||||
@property(nonatomic, assign) double duration;
|
||||
@property(nonatomic, copy, nullable) NSString *detectedLanguage;
|
||||
@end
|
||||
|
||||
@interface KBAiSpeechTranscribeResponse : NSObject
|
||||
@property(nonatomic, assign) NSInteger code;
|
||||
@property(nonatomic, strong, nullable) KBAiSpeechTranscribeData *data;
|
||||
@property(nonatomic, copy, nullable) NSString *message;
|
||||
@end
|
||||
|
||||
typedef void (^AiVMSpeechTranscribeCompletion)(KBAiSpeechTranscribeResponse *_Nullable response,
|
||||
NSError *_Nullable error);
|
||||
|
||||
@interface AiVM : NSObject
|
||||
|
||||
- (void)syncChatWithTranscript:(NSString *)transcript
|
||||
@@ -64,6 +81,10 @@ typedef void (^AiVMUploadAudioCompletion)(NSString *_Nullable fileURL,
|
||||
- (void)uploadAudioFileAtURL:(NSURL *)fileURL
|
||||
completion:(AiVMUploadAudioCompletion)completion;
|
||||
|
||||
/// 语音转文字(multipart/form-data)
|
||||
- (void)transcribeAudioFileAtURL:(NSURL *)fileURL
|
||||
completion:(AiVMSpeechTranscribeCompletion)completion;
|
||||
|
||||
#pragma mark - 人设相关接口
|
||||
|
||||
/// 分页查询人设列表
|
||||
|
||||
@@ -46,6 +46,12 @@
|
||||
@implementation KBAiMessageResponse
|
||||
@end
|
||||
|
||||
@implementation KBAiSpeechTranscribeData
|
||||
@end
|
||||
|
||||
@implementation KBAiSpeechTranscribeResponse
|
||||
@end
|
||||
|
||||
@implementation AiVM
|
||||
|
||||
- (void)syncChatWithTranscript:(NSString *)transcript
|
||||
@@ -126,15 +132,16 @@ autoShowBusinessError:NO
|
||||
completion:^(NSDictionary *_Nullable json,
|
||||
NSURLResponse *_Nullable response,
|
||||
NSError *_Nullable error) {
|
||||
KBAiMessageResponse *model =
|
||||
[KBAiMessageResponse mj_objectWithKeyValues:json];
|
||||
if (error) {
|
||||
if (completion) {
|
||||
completion(nil, error);
|
||||
completion(model, error);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
KBAiMessageResponse *model =
|
||||
[KBAiMessageResponse mj_objectWithKeyValues:json];
|
||||
|
||||
id dataObj = json[@"data"];
|
||||
if (!model.data && [dataObj isKindOfClass:[NSString class]]) {
|
||||
KBAiMessageData *data = [[KBAiMessageData alloc] init];
|
||||
@@ -261,6 +268,42 @@ autoShowBusinessError:NO
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)transcribeAudioFileAtURL:(NSURL *)fileURL
|
||||
completion:(AiVMSpeechTranscribeCompletion)completion {
|
||||
if (!fileURL || !fileURL.isFileURL) {
|
||||
NSError *error = [NSError errorWithDomain:@"AiVM"
|
||||
code:-1
|
||||
userInfo:@{NSLocalizedDescriptionKey : @"invalid fileURL"}];
|
||||
if (completion) {
|
||||
completion(nil, error);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
[[KBNetworkManager shared] uploadFile:API_AI_SPEECH_TRANSCRIBE
|
||||
fileURL:fileURL
|
||||
name:@"file"
|
||||
mimeType:@"audio/m4a"
|
||||
parameters:nil
|
||||
headers:nil
|
||||
completion:^(NSDictionary *_Nullable json,
|
||||
NSURLResponse *_Nullable response,
|
||||
NSError *_Nullable error) {
|
||||
if (error) {
|
||||
if (completion) {
|
||||
completion(nil, error);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
KBAiSpeechTranscribeResponse *model =
|
||||
[KBAiSpeechTranscribeResponse mj_objectWithKeyValues:json];
|
||||
if (completion) {
|
||||
completion(model, nil);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - 人设相关接口
|
||||
|
||||
- (void)fetchPersonasWithPageNum:(NSInteger)pageNum
|
||||
|
||||
Reference in New Issue
Block a user