AI Ses Kaydı
AI ses kaydı hizmet oturumu başlatın, bağlı aygıttaki kaydı koordine edin, canlı döküm ve oturum olaylarını alın ve nihai kayıt raporunu toplayın.
Bu geri çağrı modelinin kullandığı AIAudioRecordingEventType yaşam döngüsü için AI Oturum Olayları sayfasına bakın.
AI audio recording session lifecycle
Start the AI service before device-side audio, keep both lifecycles coordinated, and finish through the service report callback.
Ön Koşullar
AIBudsAISDKbaşlatılmış ve kayıtlı bir AI servis sağlayıcısı seçilmiştir.- Gerekiyorsa servis sağlayıcı kimlik doğrulaması tamamlanmıştır.
- Aygıt bağlıdır ve
DeviceAudioRecordingAPIprotokolüne uyar. - Seçilen servis sağlayıcı
AIAudioRecordingServiceAPIdesteği sunar.
AI desteğiyle uygulayın
Bu iş akışını AI ile uygulayın
Resmî “AIBuds AI Ses Kaydını Uygulama” becerisini kullanarak iş akışını uygulamanıza uyarlayın.
https://docs-aibuds.github.io/tr/skills/implement-aibuds-ai-audio-recording adresini okuyup yönergeleri izleyin. Bu beceriyle “AIBuds AI Ses Kaydını Uygulama” iş akışını iOS projesinde uygulayıp doğrulayın.API Reference
Framework
AIBudsAI.xcframework
Import
- Swift
- Objective-C
import AIBuds
import AIBudsAI
import AIBudsAIFoundation#import <AIBuds/AIBuds-Swift.h>
#import <AIBudsAI/AIBudsAI-Swift.h>Declaration
- Swift
- Objective-C
/// Starts an AI audio recording session.
/// - Parameters:
/// - config: The session configuration.
/// - onStartSuccess: Called with the started session.
/// - onStartFailure: Called when the session cannot start.
/// - onTranscript: Called when speech is transcribed.
/// - onEvent: Called for session-level events.
/// - onError: Called when the running session encounters an error.
/// - onFinish: Called with the completed session report.
public static func startAIAudioRecording(_ config: AIAudioRecordingSessionConfig = .default,
onStartSuccess: ((_ session: AIAudioRecordingSessionConvertible) -> Void)? = nil,
onStartFailure: ((_ error: Error) -> Void)? = nil,
onTranscript: ((_ transcriptData: StreamSpeechASRModel) -> Void)? = nil,
onEvent: ((_ event: AIAudioRecordingEventModel) -> Void)? = nil,
onError: ((_ error: NSError) -> Void)? = nil,
onFinish: ((_ report: AIAudioRecordingReportModel) -> Void)? = nil) -> Void
/// Stops the current AI audio recording service session.
public static func stopAIAudioRecording()/// Starts an AI audio recording session.
/// - Parameters:
/// - config: The session configuration.
/// - onStartSuccess: Called with the started session.
/// - onStartFailure: Called when the session cannot start.
/// - onTranscript: Called when speech is transcribed.
/// - onEvent: Called for session-level events.
/// - onError: Called when the running session encounters an error.
/// - onFinish: Called with the completed session report.
+ (void)startAIAudioRecordingWithConfig:(AIBudsAIAudioRecordingSessionConfig * _Nonnull)config
onStartSuccess:(void (^ _Nullable)(id <AIBudsAIAudioRecordingSessionConvertible> _Nonnull))onStartSuccess
onStartFailure:(void (^ _Nullable)(NSError * _Nonnull))onStartFailure
onTranscript:(void (^ _Nullable)(AIBudsStreamSpeechASRModel * _Nonnull))onTranscript
onEvent:(void (^ _Nullable)(AIBudsAIAudioRecordingEventModel * _Nonnull))onEvent
onError:(void (^ _Nullable)(NSError * _Nonnull))onError
onFinish:(void (^ _Nullable)(AIBudsAIAudioRecordingReportModel * _Nonnull))onFinish;
/// Stops the current AI audio recording service session.
+ (void)stopAIAudioRecording;startAIAudioRecording ve stopAIAudioRecording başvurularına bakın.
Yapılandırma
AIAudioRecordingSessionConfig şu ayarları sunar:
| Özellik | Açıklama |
|---|---|
recordingScene | .onSite gibi kayıt senaryosu. |
allowRecordingWhileOffline | Ağ yokken hizmetin başlayıp başlayamayacağı. Varsayılan false. |
enableSpeakerDiarization | Konuşmacı ayrımının etkin olup olmadığı. Varsayılan false. |
languageForSpeechInput | İsteğe bağlı konuşma dili tanımlayıcısı. Belirtilmezse SDK uygulama dilini kullanır. |
Kullanım Örnekleri
AI hizmet oturumu, aygıt AI kayıt sesini göndermeye başlamadan önce başlatılmalıdır. Kullanıcı kaydı bitirdiğinde veya hata oluştuğunda iki tarafı da durdurun.
- Swift
- Objective-C
let config = AIAudioRecordingSessionConfig(
recordingScene: .onSite,
allowRecordingWhileOffline: true,
enableSpeakerDiarization: true,
languageForSpeechInput: "en-US"
)
AIBudsAISDK.startAIAudioRecording(
config,
onStartSuccess: { session in
currentSession = session
guard let recordingDevice = device as? DeviceAudioRecordingAPI else {
AIBudsAISDK.stopAIAudioRecording()
return
}
recordingDevice.startAIAudioRecording(.onSite) { success, error in
if !success {
print(error?.localizedDescription ?? "Device recording failed")
AIBudsAISDK.stopAIAudioRecording()
}
}
},
onStartFailure: { error in
print("Session start failed: \(error)")
},
onTranscript: { transcript in
print(transcript.transcript ?? "")
},
onEvent: { event in
print(event)
},
onError: { error in
print(error.localizedDescription)
},
onFinish: { report in
currentSession = nil
print(report)
}
)AIBudsAIAudioRecordingSessionConfig *config =
[[AIBudsAIAudioRecordingSessionConfig alloc] initWithRecordingScene:AIBudsRecordingSceneOnSite
allowRecordingWhileOffline:YES
enableSpeakerDiarization:YES
languageForSpeechInput:@"en-US"];
[AIBudsAISDK startAIAudioRecordingWithConfig:config
onStartSuccess:^(id<AIBudsAIAudioRecordingSessionConvertible> session) {
self.currentSession = session;
id<AIBudsDeviceAudioRecordingAPI> recordingDevice =
(id<AIBudsDeviceAudioRecordingAPI>)self.device;
if (![recordingDevice conformsToProtocol:@protocol(AIBudsDeviceAudioRecordingAPI)]) {
[AIBudsAISDK stopAIAudioRecording];
return;
}
[recordingDevice startAIAudioRecordingWithScene:AIBudsRecordingSceneOnSite
completion:^(BOOL success, NSError *error) {
if (!success) {
NSLog(@"%@",
error.localizedDescription
?: @"Device recording failed");
[AIBudsAISDK stopAIAudioRecording];
}
}];
}
onStartFailure:^(NSError *error) {
NSLog(@"Session start failed: %@", error);
}
onTranscript:^(AIBudsStreamSpeechASRModel *transcript) {
NSLog(@"%@", transcript.transcript ?: @"");
}
onEvent:^(AIBudsAIAudioRecordingEventModel *event) {
NSLog(@"%@", event);
}
onError:^(NSError *error) {
NSLog(@"%@", error.localizedDescription);
}
onFinish:^(AIBudsAIAudioRecordingReportModel *report) {
self.currentSession = nil;
NSLog(@"%@", report);
}];Durdurmak için bağlı aygıtın stopAIAudioRecording(_:completion:) yöntemini çağırın, saklanan oturumu temizleyin ve ardından AIBudsAISDK.stopAIAudioRecording() çağırın.
Notlar
- Nihai geri çağrı yerel kayıt dosyası yolu değil,
AIAudioRecordingReportModeldöndürür. onStartSuccesstarafından döndürülen oturumu işlem boyunca saklayın.onStartFailurebaşlatma hatalarını;onErroroturum başladıktan sonraki hataları kapsar.- SDK bu AI hizmeti için
isRecording()yöntemi sunmaz. Saklanan oturumu uygulama durumunda izleyin.