speechrecorderng 2.24.2 → 2.25.0

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.
@@ -13,3 +13,16 @@ export declare class SequenceAudioFloat32ChunkerOutStream extends Float32ArrayCh
13
13
  setFormat(channels: number, sampleRate: number): void;
14
14
  nextStream(): void;
15
15
  }
16
+ /**
17
+ * Streams a SequenceAudioFloat32OutStream to multiple streams
18
+ */
19
+ export declare class SequenceAudioFloat32OutStreamMultiplier implements SequenceAudioFloat32OutStream {
20
+ private _sequenceAudioFloat32OutStreams;
21
+ constructor();
22
+ get sequenceAudioFloat32OutStreams(): Array<SequenceAudioFloat32OutStream>;
23
+ setFormat(channels: number, sampleRate: number): void;
24
+ nextStream(): void;
25
+ close(): void;
26
+ flush(): void;
27
+ write(buffers: Array<Float32Array>): number;
28
+ }
@@ -14,7 +14,10 @@ export declare class Float32ArrayChunkerOutStream implements Float32ArrayOutStre
14
14
  constructor(outStream: Float32ArrayOutStream);
15
15
  private createBuffers;
16
16
  set chunkSize(chunkSize: number);
17
+ get chunkSize(): number;
17
18
  set channels(channels: number);
19
+ get channels(): number;
20
+ available(): number;
18
21
  write(buffers: Array<Float32Array>): number;
19
22
  flush(): void;
20
23
  close(): void;
@@ -40,6 +40,7 @@ export interface Project {
40
40
  mediaCaptureFormat?: MediaCaptureFormat;
41
41
  autoGainControlConfigs?: Array<AutoGainControlConfig>;
42
42
  audioDevices?: Array<AudioDevice>;
43
+ chunkedRecording?: boolean;
43
44
  }
44
45
  export declare class ProjectUtil {
45
46
  static readonly DEFAULT_AUDIO_CHANNEL_COUNT = 2;
@@ -36,10 +36,9 @@ export declare class AudioRecorder extends BasicRecorder implements OnInit, Afte
36
36
  private renderer;
37
37
  private route;
38
38
  dialog: MatDialog;
39
- private projectService;
40
39
  protected sessionService: SessionService;
41
40
  private recFileService;
42
- private uploader;
41
+ protected uploader: SpeechRecorderUploader;
43
42
  config?: SpeechRecorderConfig | undefined;
44
43
  _project: Project | undefined | null;
45
44
  projectName: string | undefined | null;
@@ -49,7 +48,6 @@ export declare class AudioRecorder extends BasicRecorder implements OnInit, Afte
49
48
  recorderCombiPane: RecorderCombiPane;
50
49
  liveLevelDisplay: LevelBar;
51
50
  dataSaved: boolean;
52
- private startedDate;
53
51
  private maxRecTimerId;
54
52
  private maxRecTimerRunning;
55
53
  private updateTimerId;
@@ -59,7 +57,7 @@ export declare class AudioRecorder extends BasicRecorder implements OnInit, Afte
59
57
  private _promptIndex;
60
58
  private _displayRecFile;
61
59
  private displayRecFileVersion;
62
- constructor(changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, route: ActivatedRoute, dialog: MatDialog, projectService: ProjectService, sessionService: SessionService, recFileService: RecordingService, uploader: SpeechRecorderUploader, config?: SpeechRecorderConfig | undefined);
60
+ constructor(changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, route: ActivatedRoute, dialog: MatDialog, sessionService: SessionService, recFileService: RecordingService, uploader: SpeechRecorderUploader, config?: SpeechRecorderConfig | undefined);
63
61
  ngAfterViewInit(): void;
64
62
  ready(): boolean;
65
63
  ngOnDestroy(): void;
@@ -101,13 +99,13 @@ export declare class AudioRecorder extends BasicRecorder implements OnInit, Afte
101
99
  stopRecording(): void;
102
100
  stopRecordingMaxRec(): void;
103
101
  stopped(): void;
104
- postRecording(wavFile: Uint8Array, recUrl: string): void;
105
102
  postRecordingMultipart(wavFile: Uint8Array, uuid: string | null, sessionId: string | number | null, startedDate: Date | null | undefined, recUrl: string): void;
103
+ postChunkAudioBuffer(audioBuffer: AudioBuffer, chunkIdx: number): void;
106
104
  stop(): void;
107
105
  private updateControlPlaybackPosition;
108
106
  audioPlayerUpdate(e: AudioPlayerEvent): void;
109
107
  static ɵfac: i0.ɵɵFactoryDeclaration<AudioRecorder, never>;
110
- static ɵcmp: i0.ɵɵComponentDeclaration<AudioRecorder, "app-audiorecorder", never, { "_project": "_project"; "projectName": "projectName"; "dataSaved": "dataSaved"; }, {}, never, never>;
108
+ static ɵcmp: i0.ɵɵComponentDeclaration<AudioRecorder, "app-audiorecorder", never, { "projectName": "projectName"; "dataSaved": "dataSaved"; }, {}, never, never>;
111
109
  }
112
110
  export declare class AudioRecorderComponent extends RecorderComponent implements OnInit, OnDestroy, AfterViewInit, ReadyStateProvider {
113
111
  protected injector: Injector;
@@ -116,7 +114,6 @@ export declare class AudioRecorderComponent extends RecorderComponent implements
116
114
  private changeDetectorRef;
117
115
  private sessionService;
118
116
  private projectService;
119
- private recFilesService;
120
117
  protected uploader: SpeechRecorderUploader;
121
118
  mode: Mode;
122
119
  controlAudioPlayer: AudioPlayer;
@@ -125,7 +122,7 @@ export declare class AudioRecorderComponent extends RecorderComponent implements
125
122
  sessionId: string;
126
123
  session: Session;
127
124
  ar: AudioRecorder;
128
- constructor(injector: Injector, route: ActivatedRoute, router: Router, changeDetectorRef: ChangeDetectorRef, sessionService: SessionService, projectService: ProjectService, recFilesService: RecordingService, uploader: SpeechRecorderUploader);
125
+ constructor(injector: Injector, route: ActivatedRoute, router: Router, changeDetectorRef: ChangeDetectorRef, sessionService: SessionService, projectService: ProjectService, uploader: SpeechRecorderUploader);
129
126
  ngOnInit(): void;
130
127
  ngAfterViewInit(): void;
131
128
  ngOnDestroy(): void;
@@ -10,19 +10,48 @@ import { AudioPlayer } from "../../audio/playback/player";
10
10
  import { Subscription } from "rxjs";
11
11
  import { AudioClip } from "../../audio/persistor";
12
12
  import { Action } from "../../action/action";
13
+ import { SpeechRecorderConfig } from "../../spr.config";
14
+ import { SpeechRecorderUploader } from "../spruploader";
13
15
  import NoSleep from "nosleep.js";
16
+ import { SequenceAudioFloat32OutStream } from "../../audio/io/stream";
17
+ import { SprRecordingFile } from "../recording";
14
18
  export declare const FORCE_REQUEST_AUDIO_PERMISSIONS = false;
15
19
  export declare const RECFILE_API_CTX = "recfile";
16
20
  export declare const MAX_RECORDING_TIME_MS: number;
17
21
  export declare const LEVEL_BAR_INTERVALL_SECONDS = 0.1;
18
- export declare class BasicRecorder {
22
+ export interface ChunkAudioBufferReceiver {
23
+ postAudioStreamStart(): void;
24
+ postChunkAudioBuffer(audioBuffer: AudioBuffer, chunkIdx: number): void;
25
+ postAudioStreamEnd(chunkCount: number): void;
26
+ }
27
+ export declare class ChunkManager implements SequenceAudioFloat32OutStream {
28
+ private chunkAudioBufferReceiver;
29
+ set recordingFile(value: SprRecordingFile);
30
+ private channels;
31
+ private sampleRate;
32
+ private _rf;
33
+ private chunkIdx;
34
+ constructor(chunkAudioBufferReceiver: ChunkAudioBufferReceiver);
35
+ close(): void;
36
+ flush(): void;
37
+ nextStream(): void;
38
+ setFormat(channels: number, sampleRate: number): void;
39
+ write(buffers: Array<Float32Array>): number;
40
+ }
41
+ export declare abstract class BasicRecorder {
19
42
  dialog: MatDialog;
20
43
  protected sessionService: SessionService;
44
+ protected uploader: SpeechRecorderUploader;
45
+ config?: SpeechRecorderConfig | undefined;
46
+ get uploadChunkSizeSeconds(): number | null;
47
+ set uploadChunkSizeSeconds(value: number | null);
48
+ static readonly DEFAULT_CHUNK_SIZE_SECONDS = 30;
21
49
  protected userAgent: UserAgent;
22
50
  statusMsg: string;
23
51
  statusAlertType: string;
24
52
  statusWaiting: boolean;
25
53
  readonly: boolean;
54
+ protected rfUuid: string | null;
26
55
  processingRecording: boolean;
27
56
  ac: AudioCapture | null;
28
57
  protected _wakeLock: boolean;
@@ -34,6 +63,7 @@ export declare class BasicRecorder {
34
63
  _session: Session | null;
35
64
  transportActions: TransportActions;
36
65
  playStartAction: Action<void>;
66
+ protected startedDate: Date | null;
37
67
  uploadProgress: number;
38
68
  uploadStatus: string;
39
69
  audioSignalCollapsed: boolean;
@@ -47,7 +77,8 @@ export declare class BasicRecorder {
47
77
  protected destroyed: boolean;
48
78
  protected navigationDisabled: boolean;
49
79
  protected noSleep: NoSleep | null;
50
- constructor(dialog: MatDialog, sessionService: SessionService);
80
+ private _uploadChunkSizeSeconds;
81
+ constructor(dialog: MatDialog, sessionService: SessionService, uploader: SpeechRecorderUploader, config?: SpeechRecorderConfig | undefined);
51
82
  get wakeLock(): boolean;
52
83
  set wakeLock(value: boolean);
53
84
  enableWakeLockCond(): void;
@@ -58,7 +89,14 @@ export declare class BasicRecorder {
58
89
  set session(session: Session | null);
59
90
  get session(): Session | null;
60
91
  enableStartUserGesture(): void;
92
+ configureStreamCaptureStream(): void;
61
93
  start(): void;
94
+ startItem(): void;
95
+ started(): void;
96
+ postRecording(wavFile: Uint8Array, recUrl: string): void;
97
+ postAudioStreamStart(): void;
98
+ abstract postChunkAudioBuffer(audioBuffer: AudioBuffer, chunkIdx: number): void;
99
+ postAudioStreamEnd(chunkCount: number): void;
62
100
  closed(): void;
63
101
  error(msg?: string, advice?: string): void;
64
102
  }
@@ -12,7 +12,7 @@ import { Prompting } from "./prompting";
12
12
  import { RecordingService } from "../recordings/recordings.service";
13
13
  import { Item } from "./item";
14
14
  import { LevelBar } from "../../audio/ui/livelevel";
15
- import { BasicRecorder } from "./basicrecorder";
15
+ import { BasicRecorder, ChunkAudioBufferReceiver } from "./basicrecorder";
16
16
  import * as i0 from "@angular/core";
17
17
  export declare const enum Status {
18
18
  BLOCKED = 0,
@@ -25,13 +25,13 @@ export declare const enum Status {
25
25
  STOPPING_PAUSE = 7,
26
26
  ERROR = 8
27
27
  }
28
- export declare class SessionManager extends BasicRecorder implements AfterViewInit, OnDestroy, AudioCaptureListener {
28
+ export declare class SessionManager extends BasicRecorder implements AfterViewInit, OnDestroy, AudioCaptureListener, ChunkAudioBufferReceiver {
29
29
  private changeDetectorRef;
30
30
  private renderer;
31
31
  dialog: MatDialog;
32
32
  protected sessionService: SessionService;
33
33
  private recFileService;
34
- private uploader;
34
+ protected uploader: SpeechRecorderUploader;
35
35
  config?: SpeechRecorderConfig | undefined;
36
36
  projectName: string | undefined;
37
37
  enableUploadRecordings: boolean;
@@ -112,6 +112,7 @@ export declare class SessionManager extends BasicRecorder implements AfterViewIn
112
112
  addRecordingFileByDescriptor(rfd: RecordingFileDescriptorImpl): void;
113
113
  addRecordingFileByPromptIndex(promptIndex: number, rf: SprRecordingFile): void;
114
114
  stopped(): void;
115
+ postChunkAudioBuffer(audioBuffer: AudioBuffer, chunkIdx: number): void;
115
116
  postRecording(wavFile: Uint8Array, recUrl: string): void;
116
117
  stop(): void;
117
118
  private updateControlPlaybackPosition;
@@ -1 +1 @@
1
- export declare const VERSION = "2.24.2";
1
+ export declare const VERSION = "2.25.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speechrecorderng",
3
- "version": "2.24.2",
3
+ "version": "2.25.0",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "~13.3.2",
6
6
  "@angular/cdk": "~13.3.2",