स्ट्रीमिंग स्पीच रिकग्निशन
Audio data या local audio file चुने गए AI provider को भेजें और क्रमशः speech-recognition results पाएँ।
आवश्यक शर्तें
AIBudsAISDKinitialize हो और registered provider चुना गया हो।- Provider
StreamingASRServiceAPIsupport करता हो। - Input bytes कॉन्फ़िगरेशन में दिए
audioFormatसे मेल खाते हों। languageForSpeechInputदेने परen-USयाzh-CNजैसा hyphenated language identifier उपयोग करें।
AI की सहायता से लागू करें
AI से बनाएँ
इस वर्कफ़्लो को AI से लागू करें
आधिकारिक “AIBuds स्ट्रीमिंग ASR लागू करें” स्किल से वर्कफ़्लो को अपने ऐप के अनुसार लागू करें।
https://docs-aibuds.github.io/hi/skills/implement-aibuds-streaming-asr को पढ़ें और निर्देशों का पालन करें। इस स्किल से “AIBuds स्ट्रीमिंग ASR लागू करें” को इस iOS प्रोजेक्ट में लागू करें और परिणाम सत्यापित करें।API Reference
Framework
AIBudsAI.xcframework
Import
- Swift
- Objective-C
import AIBudsAI
import AIBudsAIFoundation#import <AIBudsAI/AIBudsAI-Swift.h>Declaration
- Swift
- Objective-C
/// Recognizes voice data.
/// - Parameters:
/// - data: The audio data to recognize.
/// - config: The recognition configuration.
/// - onTranscript: Called for each incremental transcript result.
/// - onFailed: Called when recognition fails.
/// - onFinish: Called when recognition finishes.
public static func recognizeVoice(_ data: Data,
config: StreamingASRConfig = .default,
onTranscript: ((_ transcriptData: StreamSpeechASRModel) -> Void)? = nil,
onFailed: ((_ error: NSError) -> Void)? = nil,
onFinish: (() -> Void)? = nil) -> Void
/// Recognizes a voice file.
/// - Parameters:
/// - filePath: The local path of the audio file to recognize.
/// - config: The recognition configuration.
/// - onTranscript: Called for each incremental transcript result.
/// - onFailed: Called when recognition fails.
/// - onFinish: Called when recognition finishes.
public static func recognizeVoice(withFile filePath: String,
config: StreamingASRConfig = .default,
onTranscript: ((_ transcriptData: StreamSpeechASRModel) -> Void)? = nil,
onFailed: ((_ error: NSError) -> Void)? = nil,
onFinish: (() -> Void)? = nil) -> Void/// Recognizes voice data.
/// - Parameters:
/// - data: The audio data to recognize.
/// - config: The recognition configuration.
/// - onTranscript: Called for each incremental transcript result.
/// - onFailed: Called when recognition fails.
/// - onFinish: Called when recognition finishes.
+ (void)recognizeVoiceData:(NSData * _Nonnull)data
withConfig:(AIBudsStreamingASRConfig * _Nonnull)config
onTranscript:(void (^ _Nullable)(AIBudsStreamSpeechASRModel * _Nonnull))onTranscript
onFailed:(void (^ _Nullable)(NSError * _Nonnull))onFailed
onFinish:(void (^ _Nullable)(void))onFinish;
/// Recognizes a voice file.
/// - Parameters:
/// - filePath: The local path of the audio file to recognize.
/// - config: The recognition configuration.
/// - onTranscript: Called for each incremental transcript result.
/// - onFailed: Called when recognition fails.
/// - onFinish: Called when recognition finishes.
+ (void)recognizeVoiceFile:(NSString * _Nonnull)filePath
withConfig:(AIBudsStreamingASRConfig * _Nonnull)config
onTranscript:(void (^ _Nullable)(AIBudsStreamSpeechASRModel * _Nonnull))onTranscript
onFailed:(void (^ _Nullable)(NSError * _Nonnull))onFailed
onFinish:(void (^ _Nullable)(void))onFinish;दोनों overloads AIBudsAISDK उपलब्ध कराता है और वे चुने गए provider के StreamingASRServiceAPI implementation तक जाते हैं।
कॉन्फ़िगरेशन
StreamingASRConfig इन values के साथ बनाएँ:
| Value | विवरण |
|---|---|
languageForSpeechInput | Optional recognition language। न देने पर provider app localization की वर्तमान भाषा उपयोग करता है। |
audioFormat | .pcm, .mp3 या .wav जैसा input format। |
enableSpeakerDiarization | Provider speaker segments पहचाने या नहीं। Default false है। |
Input format AIAudioFormat उपयोग करता है:
| Value | इनपुट |
|---|---|
.pcm | चुने गए provider के अपेक्षित sample format से मेल खाता raw PCM audio। |
.opus | Opus-encoded audio। |
.mp3 | MP3 audio। |
.wav | WAV container audio। |
.none / .unknown | उपयोग योग्य format नहीं; इन values से recognition शुरू न करें। |
हर StreamSpeechASRModel में sequence, optional request ID, incremental transcript, definiteness flag, optional transcript sequence और optional speaker segments होते हैं।
उपयोग के उदाहरण
File पहचानें
- Swift
- Objective-C
let config = StreamingASRConfig(
languageForSpeechInput: "en-US",
audioFormat: .wav,
enableSpeakerDiarization: true
)
AIBudsAISDK.recognizeVoice(
withFile: fileURL.path,
config: config,
onTranscript: { result in
print("Sequence \(result.sequence): \(result.transcript ?? "")")
if result.isDefinite {
print("Definite transcript received")
}
},
onFailed: { error in
print("Recognition failed: \(error.localizedDescription)")
},
onFinish: {
print("Recognition finished")
}
)AIBudsStreamingASRConfig *config =
[[AIBudsStreamingASRConfig alloc] initWithLanguageForSpeechInput:@"en-US"
audioFormat:AIBudsAIAudioFormatWav
enableSpeakerDiarization:YES];
[AIBudsAISDK recognizeVoiceFile:fileURL.path
withConfig:config
onTranscript:^(AIBudsStreamSpeechASRModel *result) {
NSLog(@"Sequence %ld: %@", (long)result.sequence, result.transcript ?: @"");
if (result.isDefinite) {
NSLog(@"Definite transcript received");
}
}
onFailed:^(NSError *error) {
NSLog(@"Recognition failed: %@", error.localizedDescription);
}
onFinish:^{
NSLog(@"Recognition finished");
}];In-memory audio के लिए recognizeVoice(_:config:onTranscript:onFailed:onFinish:) को Data / NSData और समान callback handling के साथ call करें।
ध्यान देने योग्य बातें
- Transcript text क्रमशः आता है और वाक्य पूरा होते समय दोहर सकता है; UI output बनाते समय
sequence,transcriptSequenceऔरisDefiniteउपयोग करें। - वर्तमान API पूरा
Datavalue या file path लेता है। यह start/append/stop streaming controls या recognition delegate उपलब्ध नहीं कराता। onFinishमें result value नहीं होती। Completion के बाद अंतिम टेक्स्ट चाहिए तोonTranscriptसे मिला नवीनतम transcript सहेजें।- Supported formats, languages और speaker diarization behavior provider के अनुसार बदल सकते हैं।