sarvam-conv-ai-sdk 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export { ConversationAgent, createConversation } from "./conversation";
2
2
  export type { Platform } from "./types";
3
3
  export type { AsyncAudioInterface, AudioData } from "./types";
4
4
  export { BrowserAudioInterface } from "./interfaces/browser";
5
+ export { RNAudioInterface } from "./interfaces/react-native";
5
6
  export * from "./types";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,9 @@
2
2
  export { ConversationAgent, createConversation } from "./conversation";
3
3
  // Browser audio interfaces
4
4
  export { BrowserAudioInterface } from "./interfaces/browser";
5
+ // React Native audio interface
6
+ // Note: This requires peer dependencies: react-native-audio-recorder-player, react-native-fs, react-native-sound
7
+ export { RNAudioInterface } from "./interfaces/react-native";
5
8
  // Messages and types
6
9
  export * from "./types";
7
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMvE,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qBAAqB;AACrB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMvE,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,+BAA+B;AAC/B,iHAAiH;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,qBAAqB;AACrB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * React Native audio interface implementation for Sarvam Conversational AI SDK.
3
+ *
4
+ * This interface provides audio input/output capabilities for React Native applications
5
+ * using native audio libraries.
6
+ *
7
+ * Required peer dependencies for bare React Native:
8
+ * - react-native-audio-recorder-player
9
+ * - react-native-fs
10
+ * - react-native-sound
11
+ *
12
+ * Install with:
13
+ * npm install react-native-audio-recorder-player react-native-fs react-native-sound
14
+ *
15
+ * For iOS, also run: cd ios && pod install
16
+ */
17
+ import { AsyncAudioInterface, AudioData } from "../types";
18
+ /**
19
+ * React Native Audio Interface for capturing microphone input and playing audio output.
20
+ * Uses react-native-audio-recorder-player for recording and react-native-sound for playback.
21
+ *
22
+ * Features:
23
+ * - Microphone capture with configurable sample rate
24
+ * - Audio buffering for smooth playback
25
+ * - Playback with seamless chunk transitions
26
+ * - Interrupt support for stopping ongoing playback
27
+ */
28
+ export declare class RNAudioInterface implements AsyncAudioInterface {
29
+ private audioRecorderPlayer;
30
+ private sound;
31
+ private nextSound;
32
+ private nextSoundTempFile;
33
+ private inputCallback;
34
+ private isRunning;
35
+ private audioQueue;
36
+ private isPlaying;
37
+ private sampleRate;
38
+ private recordingInterval;
39
+ private tempAudioFiles;
40
+ private isPreparingNext;
41
+ private audioBuffer;
42
+ private lastBufferTime;
43
+ private bufferTimeout;
44
+ private hasScheduledNext;
45
+ private currentRecordingPath;
46
+ private lastReadPosition;
47
+ private AudioRecorderPlayerClass;
48
+ private SoundClass;
49
+ private RNFS;
50
+ private Platform;
51
+ private PermissionsAndroid;
52
+ private readonly OVERLAP_MS;
53
+ private readonly MIN_BUFFER_SIZE;
54
+ private readonly BUFFER_FLUSH_DELAY_MS;
55
+ /**
56
+ * Create a new React Native audio interface
57
+ * @param sampleRate - Target sample rate for audio capture (default: 16000 Hz)
58
+ */
59
+ constructor(sampleRate?: number);
60
+ /**
61
+ * Request audio recording permissions.
62
+ */
63
+ private requestPermissions;
64
+ /**
65
+ * Start capturing audio from the microphone
66
+ * @param inputCallback - Callback to receive audio chunks
67
+ */
68
+ start(inputCallback: (audioData: AudioData, frameCount: number) => Promise<void>): Promise<void>;
69
+ /**
70
+ * Stop capturing audio and clean up resources
71
+ */
72
+ stop(): Promise<void>;
73
+ /**
74
+ * Output audio to the speakers
75
+ * Buffers small chunks together for smoother playback with reduced gaps.
76
+ * @param audio - Audio data in 16-bit PCM mono format
77
+ * @param sampleRate - Sample rate of the audio (default: 16000 Hz)
78
+ */
79
+ output(audio: AudioData, sampleRate?: number): Promise<void>;
80
+ /**
81
+ * Interrupt and stop all ongoing audio playback
82
+ */
83
+ interrupt(): void;
84
+ /**
85
+ * Flush buffered audio chunks to the playback queue.
86
+ */
87
+ private flushAudioBuffer;
88
+ /**
89
+ * Process the audio queue for playback with pre-loading for seamless transitions.
90
+ */
91
+ private processAudioQueue;
92
+ /**
93
+ * Play a sound file using react-native-sound.
94
+ */
95
+ private playSound;
96
+ /**
97
+ * Start the next prepared chunk (overlap technique).
98
+ */
99
+ private startNextChunk;
100
+ /**
101
+ * Pre-load the next audio chunk for seamless playback.
102
+ */
103
+ private prepareNextChunk;
104
+ /**
105
+ * Read audio file and extract PCM data.
106
+ */
107
+ private readAudioFile;
108
+ /**
109
+ * Convert base64 string to binary string.
110
+ */
111
+ private base64ToBinary;
112
+ /**
113
+ * Create a complete WAV file from PCM data.
114
+ */
115
+ private createWavFile;
116
+ /**
117
+ * Write a string to a DataView.
118
+ */
119
+ private writeString;
120
+ /**
121
+ * Convert ArrayBuffer to base64 string.
122
+ */
123
+ private arrayBufferToBase64;
124
+ /**
125
+ * Clean up a single temporary audio file.
126
+ */
127
+ private cleanupTempFile;
128
+ /**
129
+ * Clean up all temporary audio files.
130
+ */
131
+ private cleanupAllTempFiles;
132
+ }
133
+ //# sourceMappingURL=react-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native.d.ts","sourceRoot":"","sources":["../../src/interfaces/react-native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAa1D;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,aAAa,CAA8E;IACnG,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,kBAAkB,CAAM;IAGhC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAE5C;;;OAGG;gBACS,UAAU,GAAE,MAAc;IA0CtC;;OAEG;YACW,kBAAkB;IA+BhC;;;OAGG;IACG,KAAK,CACT,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC;IAsEhB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE3B;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCzE;;OAEG;IACH,SAAS,IAAI,IAAI;IAgDjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;YACW,iBAAiB;IAsD/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAqDjB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8CtB;;OAEG;YACW,gBAAgB;IAyD9B;;OAEG;YACW,aAAa;IAgC3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwCrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,eAAe;IAa7B;;OAEG;YACW,mBAAmB;CAalC"}