AI ऑडियो रिकॉर्डिंग
AI ऑडियो रिकॉर्डिंग service session शुरू करें, जुड़े डिवाइस पर रिकॉर्डिंग coordinate करें, live transcription और session events पाएँ तथा अंतिम recording report लें।
इस callback model में साझा AIAudioRecordingEventType lifecycle के लिए AI Session Events देखें।
AI ऑडियो रिकॉर्डिंग session lifecycle
Device-side audio से पहले AI service शुरू करें, दोनों lifecycles coordinate रखें और service report callback से पूरा करें।
आवश्यक शर्तें
AIBudsAISDKinitialize हो और registered AI सेवा प्रदाता चुना गया हो।- आवश्यकता होने पर सेवा प्रदाता का authentication पूरा हो।
- डिवाइस जुड़ा हो और
DeviceAudioRecordingAPIको conform करता हो। - चुना गया सेवा प्रदाता
AIAudioRecordingServiceAPIsupport करता हो।
AI की सहायता से लागू करें
इस वर्कफ़्लो को AI से लागू करें
आधिकारिक “AIBuds AI ऑडियो रिकॉर्डिंग लागू करें” स्किल से वर्कफ़्लो को अपने ऐप के अनुसार लागू करें।
https://docs-aibuds.github.io/hi/skills/implement-aibuds-ai-audio-recording को पढ़ें और निर्देशों का पालन करें। इस स्किल से “AIBuds AI ऑडियो रिकॉर्डिंग लागू करें” को इस iOS प्रोजेक्ट में लागू करें और परिणाम सत्यापित करें।API संदर्भ
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 और stopAIAudioRecording देखें।
कॉन्फ़िगरेशन
AIAudioRecordingSessionConfig ये settings देता है:
| प्रॉपर्टी | विवरण |
|---|---|
recordingScene | .onSite जैसी recording scene। |
allowRecordingWhileOffline | Network उपलब्ध न होने पर service शुरू हो सकती है या नहीं। Default false है। |
enableSpeakerDiarization | Speaker diarization चालू है या नहीं। Default false है। |
languageForSpeechInput | Optional speech-language identifier। न देने पर SDK app localization की भाषा उपयोग करता है। |
उपयोग के उदाहरण
डिवाइस के AI recording audio भेजना शुरू करने से पहले AI service session शुरू होना चाहिए। उपयोगकर्ता रिकॉर्डिंग समाप्त करे या error आए तो दोनों पक्ष रोकें।
- 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);
}];रोकने के लिए जुड़े डिवाइस का stopAIAudioRecording(_:completion:) call करें, retained session हटाएँ और फिर AIBudsAISDK.stopAIAudioRecording() call करें।
ध्यान देने योग्य बातें
- अंतिम callback local recording file path नहीं,
AIAudioRecordingReportModelलौटाता है। onStartSuccessसे मिला session operation पूरा होने तक बनाए रखें।onStartFailurestartup failures संभालता है; session शुरू होने के बाद के errorsonErrorसंभालता है।- SDK इस AI service के लिए
isRecording()method उपलब्ध नहीं कराता। Retained session को application state में track करें।