// // DeepgramStreamingManager.h // keyBoard // // Created by Mac on 2026/1/21. // #import NS_ASSUME_NONNULL_BEGIN @protocol DeepgramStreamingManagerDelegate @optional - (void)deepgramStreamingManagerDidConnect; - (void)deepgramStreamingManagerDidDisconnect:(NSError *_Nullable)error; - (void)deepgramStreamingManagerDidUpdateRMS:(float)rms; - (void)deepgramStreamingManagerDidReceiveInterimTranscript:(NSString *)text; - (void)deepgramStreamingManagerDidReceiveFinalTranscript:(NSString *)text; - (void)deepgramStreamingManagerDidFail:(NSError *)error; @end /// Manager for Deepgram live transcription. @interface DeepgramStreamingManager : NSObject @property(nonatomic, weak) id delegate; @property(nonatomic, copy) NSString *serverURL; // wss://api.deepgram.com/v1/listen @property(nonatomic, copy) NSString *apiKey; @property(nonatomic, copy, nullable) NSString *language; @property(nonatomic, copy, nullable) NSString *model; @property(nonatomic, assign) BOOL punctuate; @property(nonatomic, assign) BOOL smartFormat; @property(nonatomic, assign) BOOL interimResults; @property(nonatomic, copy) NSString *encoding; // linear16 @property(nonatomic, assign) double sampleRate; @property(nonatomic, assign) int channels; @property(nonatomic, assign, readonly, getter=isStreaming) BOOL streaming; - (void)start; - (void)prepareConnection; - (void)stopAndFinalize; - (void)cancel; - (void)disconnect; @end NS_ASSUME_NONNULL_END