1
This commit is contained in:
50
keyBoard/Class/AiTalk/VM/DeepgramStreamingManager.h
Normal file
50
keyBoard/Class/AiTalk/VM/DeepgramStreamingManager.h
Normal file
@@ -0,0 +1,50 @@
|
||||
//
|
||||
// DeepgramStreamingManager.h
|
||||
// keyBoard
|
||||
//
|
||||
// Created by Mac on 2026/1/21.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol DeepgramStreamingManagerDelegate <NSObject>
|
||||
@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<DeepgramStreamingManagerDelegate> 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
|
||||
Reference in New Issue
Block a user