echogarden 0.9.2 → 0.10.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.
Files changed (74) hide show
  1. package/README.md +3 -7
  2. package/data/schemas/options.json +57 -26
  3. package/dist/api/Alignment.d.ts +4 -4
  4. package/dist/api/Alignment.js +31 -31
  5. package/dist/api/Alignment.js.map +1 -1
  6. package/dist/api/Denoising.d.ts +9 -3
  7. package/dist/api/Denoising.js +9 -9
  8. package/dist/api/Denoising.js.map +1 -1
  9. package/dist/api/LanguageDetection.d.ts +13 -17
  10. package/dist/api/LanguageDetection.js +13 -17
  11. package/dist/api/LanguageDetection.js.map +1 -1
  12. package/dist/api/Recognition.d.ts +4 -4
  13. package/dist/api/Recognition.js +10 -12
  14. package/dist/api/Recognition.js.map +1 -1
  15. package/dist/api/Synthesis.d.ts +10 -6
  16. package/dist/api/Synthesis.js +61 -25
  17. package/dist/api/Synthesis.js.map +1 -1
  18. package/dist/api/Translation.d.ts +4 -4
  19. package/dist/api/Translation.js +11 -12
  20. package/dist/api/Translation.js.map +1 -1
  21. package/dist/api/Vad.d.ts +5 -8
  22. package/dist/api/Vad.js +12 -14
  23. package/dist/api/Vad.js.map +1 -1
  24. package/dist/audio/AudioPlayer.d.ts +1 -1
  25. package/dist/audio/AudioPlayer.js +12 -14
  26. package/dist/audio/AudioPlayer.js.map +1 -1
  27. package/dist/audio/AudioUtilities.d.ts +2 -0
  28. package/dist/audio/AudioUtilities.js +28 -0
  29. package/dist/audio/AudioUtilities.js.map +1 -1
  30. package/dist/audio/SoxPath.js +4 -0
  31. package/dist/audio/SoxPath.js.map +1 -1
  32. package/dist/cli/CLI.js +84 -120
  33. package/dist/cli/CLI.js.map +1 -1
  34. package/dist/codecs/FFMpegTranscoder.d.ts +1 -0
  35. package/dist/codecs/FFMpegTranscoder.js +48 -2
  36. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  37. package/dist/denoising/RNNoise.js.map +1 -1
  38. package/dist/dsp/MFCC.js.map +1 -1
  39. package/dist/nlp/JapaneseSegmentation.js +3 -2
  40. package/dist/nlp/JapaneseSegmentation.js.map +1 -1
  41. package/dist/recognition/WhisperSTT.js +2 -2
  42. package/dist/recognition/WhisperSTT.js.map +1 -1
  43. package/dist/server/Client.d.ts +10 -8
  44. package/dist/server/Client.js +56 -59
  45. package/dist/server/Client.js.map +1 -1
  46. package/dist/server/Server.js +23 -12
  47. package/dist/server/Server.js.map +1 -1
  48. package/dist/server/Worker.d.ts +28 -11
  49. package/dist/server/Worker.js +44 -11
  50. package/dist/server/Worker.js.map +1 -1
  51. package/dist/speech-language-detection/SileroLanguageDetection.js +2 -2
  52. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
  53. package/dist/synthesis/EspeakTTS.js +2 -3
  54. package/dist/synthesis/EspeakTTS.js.map +1 -1
  55. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  56. package/dist/synthesis/MicrosoftEdgeTTS.js +1 -1
  57. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
  58. package/dist/synthesis/VitsTTS.js.map +1 -1
  59. package/dist/utilities/Logger.d.ts +2 -2
  60. package/dist/utilities/Logger.js +7 -9
  61. package/dist/utilities/Logger.js.map +1 -1
  62. package/dist/utilities/ObjectUtilities.js +4 -1
  63. package/dist/utilities/ObjectUtilities.js.map +1 -1
  64. package/dist/utilities/PackageManager.js +3 -1
  65. package/dist/utilities/PackageManager.js.map +1 -1
  66. package/dist/utilities/Timeline.js.map +1 -1
  67. package/dist/utilities/Utilities.d.ts +1 -0
  68. package/dist/utilities/Utilities.js +6 -0
  69. package/dist/utilities/Utilities.js.map +1 -1
  70. package/docs/API.md +188 -0
  71. package/docs/Options.md +30 -23
  72. package/docs/Server.md +110 -0
  73. package/docs/Tasklist.md +4 -8
  74. package/package.json +7 -7
package/README.md CHANGED
@@ -31,11 +31,9 @@ npm install echogarden -g
31
31
  ```
32
32
 
33
33
  Additional tools:
34
- * [`sox`](https://sourceforge.net/projects/sox/): used for the CLI's audio playback and recording (only). Auto-installed via an expansion package on Windows and Intel macOS. On Linux and ARM64 macOS, it is recommended to install it via platform package managers like `apt` and `brew`.
34
+ * [`sox`](https://sourceforge.net/projects/sox/): used for the CLI's audio playback and recording. Auto-installed via an expansion package on Windows, Intel macOS and x64 Linux. On ARM64 macOS, it is recommended to install it via a platform package manager like `brew`.
35
35
  * [`ffmpeg`](https://ffmpeg.org/download.html): used for codec conversions. Auto-installed via an expansion package on Windows, Intel macOS, and x64 Linux. On ARM64 macOS, it is recommended to install it via a platform package manager like `brew`.
36
36
 
37
- (hopefully in the future all platforms would be covered using expansion packages)
38
-
39
37
  ### Updating to latest version
40
38
 
41
39
  ```bash
@@ -53,6 +51,8 @@ Development of more graphical and interactive tooling is currently ongoing. A ge
53
51
  * [Using the command-line interface](docs/CLI.md)
54
52
  * [Options reference](docs/Options.md)
55
53
  * [Full list of supported engines](docs/Engines.md)
54
+ * [Developer API reference](docs/API.md)
55
+ * [Starting and interfacing with a WebSocket server](docs/Server.md)
56
56
  * [Technical overview and Q&A](docs/Technical.md)
57
57
  * [Developer's task list](docs/Tasklist.md)
58
58
  * [How to help](docs/Development.md)
@@ -63,8 +63,6 @@ _(For much more detailed information, see the [developer task list](docs/Tasklis
63
63
 
64
64
  ### In development
65
65
 
66
- * (**90**%) Background worker
67
- * (**90**%) WebSocket-based server and API
68
66
  * (**70**%) Browser extension, acting as a bridge to a local or self-hosted server. Includes integration with the Web Speech API, and real-time narration of page content, with live word highlighting
69
67
  * (**60**%) New, high-accuracy text language identification model (own work)
70
68
 
@@ -72,8 +70,6 @@ _(For much more detailed information, see the [developer task list](docs/Tasklis
72
70
 
73
71
  * Web-based UI frontend
74
72
  * Real-time, streaming speech recognition
75
- * Official developer API (it's currently possible to import the `echogarden` npm package as a library, but the official API has not been published yet)
76
- * Text enhancement, adding breaks to improve phrasing of synthesized text, as well as adding missing punctuation to recognized transcripts, if needed
77
73
 
78
74
  ### Future (maybe)
79
75
 
@@ -125,6 +125,26 @@
125
125
  },
126
126
  "additionalProperties": false
127
127
  },
128
+ "outputAudioFormat": {
129
+ "type": "object",
130
+ "properties": {
131
+ "codec": {
132
+ "type": "string",
133
+ "enum": [
134
+ "wav",
135
+ "mp3",
136
+ "opus",
137
+ "m4a",
138
+ "ogg",
139
+ "flac"
140
+ ]
141
+ },
142
+ "bitrate": {
143
+ "type": "number"
144
+ }
145
+ },
146
+ "additionalProperties": false
147
+ },
128
148
  "languageDetection": {
129
149
  "$ref": "#/definitions/TextLanguageDetectionOptions"
130
150
  },
@@ -645,16 +665,7 @@
645
665
  "additionalProperties": false
646
666
  },
647
667
  "whisper": {
648
- "type": "object",
649
- "properties": {
650
- "model": {
651
- "$ref": "#/definitions/WhisperModelName"
652
- }
653
- },
654
- "required": [
655
- "model"
656
- ],
657
- "additionalProperties": false
668
+ "$ref": "#/definitions/WhisperOptions"
658
669
  }
659
670
  },
660
671
  "additionalProperties": false
@@ -666,22 +677,6 @@
666
677
  "whisper"
667
678
  ]
668
679
  },
669
- "WhisperModelName": {
670
- "type": "string",
671
- "enum": [
672
- "tiny",
673
- "tiny.en",
674
- "base",
675
- "base.en",
676
- "small",
677
- "small.en",
678
- "medium",
679
- "medium.en",
680
- "large",
681
- "large-v1",
682
- "large-v2"
683
- ]
684
- },
685
680
  "WhisperOptions": {
686
681
  "type": "object",
687
682
  "properties": {
@@ -703,6 +698,22 @@
703
698
  },
704
699
  "additionalProperties": false
705
700
  },
701
+ "WhisperModelName": {
702
+ "type": "string",
703
+ "enum": [
704
+ "tiny",
705
+ "tiny.en",
706
+ "base",
707
+ "base.en",
708
+ "small",
709
+ "small.en",
710
+ "medium",
711
+ "medium.en",
712
+ "large",
713
+ "large-v1",
714
+ "large-v2"
715
+ ]
716
+ },
706
717
  "TimePitchShiftingMethod": {
707
718
  "type": "string",
708
719
  "enum": [
@@ -865,6 +876,26 @@
865
876
  },
866
877
  "additionalProperties": false
867
878
  },
879
+ "outputAudioFormat": {
880
+ "type": "object",
881
+ "properties": {
882
+ "codec": {
883
+ "type": "string",
884
+ "enum": [
885
+ "wav",
886
+ "mp3",
887
+ "opus",
888
+ "m4a",
889
+ "ogg",
890
+ "flac"
891
+ ]
892
+ },
893
+ "bitrate": {
894
+ "type": "number"
895
+ }
896
+ },
897
+ "additionalProperties": false
898
+ },
868
899
  "languageDetection": {
869
900
  "$ref": "#/definitions/TextLanguageDetectionOptions"
870
901
  },
@@ -1,16 +1,16 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import * as API from "./API.js";
3
3
  import { Timeline } from "../utilities/Timeline.js";
4
4
  import { WhisperOptions } from "../recognition/WhisperSTT.js";
5
5
  import { SubtitlesConfig } from "../subtitles/Subtitles.js";
6
- export declare function alignFile(audioFilename: string, text: string, options: AlignmentOptions): Promise<API.AlignmentResult>;
6
+ export declare function align(input: AudioSourceParam, transcript: string, options: AlignmentOptions): Promise<AlignmentResult>;
7
7
  export declare function alignSegments(sourceRawAudio: RawAudio, segmentTimeline: Timeline, alignmentOptions: AlignmentOptions): Promise<Timeline>;
8
- export declare function align(inputRawAudio: RawAudio, transcript: string, options: AlignmentOptions): Promise<AlignmentResult>;
9
8
  export interface AlignmentResult {
9
+ timeline: Timeline;
10
10
  wordTimeline: Timeline;
11
- rawAudio: RawAudio;
12
11
  transcript: string;
13
12
  language: string;
13
+ inputRawAudio: RawAudio;
14
14
  }
15
15
  export type AlignmentEngine = "dtw" | "dtw-ra" | "whisper";
16
16
  export type PhoneAlignmentMethod = "interpolation" | "dtw";
@@ -1,11 +1,10 @@
1
1
  import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
3
2
  import { logToStderr } from "../utilities/Utilities.js";
4
- import { downmixToMonoAndNormalize, getRawAudioDuration } from "../audio/AudioUtilities.js";
3
+ import { downmixToMonoAndNormalize, ensureRawAudio, getRawAudioDuration, normalizeAudioLevel, trimAudioEnd } from "../audio/AudioUtilities.js";
5
4
  import { Logger } from "../utilities/Logger.js";
6
5
  import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
7
6
  import * as API from "./API.js";
8
- import { addTimeOffsetToTimeline } from "../utilities/Timeline.js";
7
+ import { addTimeOffsetToTimeline, addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from "../utilities/Timeline.js";
9
8
  import { formatLanguageCodeWithName, getDefaultDialectForLanguageCodeIfPossible, getShortLanguageCode, normalizeLanguageCode } from "../utilities/Locale.js";
10
9
  import { whisperOptionsDefaults } from "../recognition/WhisperSTT.js";
11
10
  import chalk from "chalk";
@@ -13,37 +12,16 @@ import { createAlignmentReferenceUsingEspeakPreprocessed } from "../alignment/Sp
13
12
  import { loadLexiconsForLanguage } from "../nlp/Lexicon.js";
14
13
  import { defaultSubtitlesConfig } from "../subtitles/Subtitles.js";
15
14
  const log = logToStderr;
16
- export async function alignFile(audioFilename, text, options) {
17
- const rawAudio = await FFMpegTranscoder.decodeToChannels(audioFilename);
18
- return align(rawAudio, text, options);
19
- }
20
- export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOptions) {
21
- const timeline = [];
22
- for (const segmentEntry of segmentTimeline) {
23
- const segmentText = segmentEntry.text;
24
- const segmentStartTime = segmentEntry.startTime;
25
- const segmentEndTime = segmentEntry.endTime;
26
- const segmentStartSampleIndex = Math.floor(segmentStartTime * sourceRawAudio.sampleRate);
27
- const segmentEndSampleIndex = Math.floor(segmentEndTime * sourceRawAudio.sampleRate);
28
- const segmentAudioSamples = sourceRawAudio.audioChannels[0].slice(segmentStartSampleIndex, segmentEndSampleIndex);
29
- const segmentRawAudio = {
30
- audioChannels: [segmentAudioSamples],
31
- sampleRate: sourceRawAudio.sampleRate
32
- };
33
- const { wordTimeline: mappedTimeline } = await align(segmentRawAudio, segmentText, alignmentOptions);
34
- const segmentTimelineWithOffset = addTimeOffsetToTimeline(mappedTimeline, segmentStartTime);
35
- timeline.push(...segmentTimelineWithOffset);
36
- }
37
- return timeline;
38
- }
39
- export async function align(inputRawAudio, transcript, options) {
15
+ export async function align(input, transcript, options) {
40
16
  const logger = new Logger();
41
17
  const startTimestamp = logger.getTimestamp();
42
18
  logger.start("Prepare for alignment");
19
+ const inputRawAudio = await ensureRawAudio(input);
20
+ let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
21
+ sourceRawAudio = normalizeAudioLevel(sourceRawAudio);
22
+ sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
43
23
  options = extendDeep(defaultAlignmentOptions, options);
44
24
  const dtwWindowDuration = options.dtw.windowDuration;
45
- let sourceRawAudio = downmixToMonoAndNormalize(inputRawAudio);
46
- sourceRawAudio = await resampleAudioSpeex(sourceRawAudio, 16000);
47
25
  let language;
48
26
  if (options.language) {
49
27
  language = normalizeLanguageCode(options.language);
@@ -98,7 +76,7 @@ export async function align(inputRawAudio, transcript, options) {
98
76
  };
99
77
  const recognitionOptions = extendDeep(recognitionOptionsDefaults, options.recognition || {});
100
78
  logger.end();
101
- const { timeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions);
79
+ const { wordTimeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions);
102
80
  const { referenceRawAudio, referenceTimeline } = await getAlignmentReference();
103
81
  logger.end();
104
82
  const phoneAlignmentMethod = options.dtw.phoneAlignmentMethod;
@@ -124,15 +102,37 @@ export async function align(inputRawAudio, transcript, options) {
124
102
  throw new Error(`Engine '${options.engine}' is not supported`);
125
103
  }
126
104
  }
105
+ addWordTextOffsetsToTimeline(mappedTimeline, transcript);
106
+ const { segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(mappedTimeline, transcript, language, options.plainText?.paragraphBreaks, options.plainText?.whitespace);
127
107
  logger.end();
128
108
  logger.logDuration(`Total alignment time`, startTimestamp, chalk.magentaBright);
129
109
  return {
110
+ timeline: segmentTimeline,
130
111
  wordTimeline: mappedTimeline,
131
- rawAudio: inputRawAudio,
112
+ inputRawAudio,
132
113
  transcript,
133
114
  language
134
115
  };
135
116
  }
117
+ export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOptions) {
118
+ const timeline = [];
119
+ for (const segmentEntry of segmentTimeline) {
120
+ const segmentText = segmentEntry.text;
121
+ const segmentStartTime = segmentEntry.startTime;
122
+ const segmentEndTime = segmentEntry.endTime;
123
+ const segmentStartSampleIndex = Math.floor(segmentStartTime * sourceRawAudio.sampleRate);
124
+ const segmentEndSampleIndex = Math.floor(segmentEndTime * sourceRawAudio.sampleRate);
125
+ const segmentAudioSamples = sourceRawAudio.audioChannels[0].slice(segmentStartSampleIndex, segmentEndSampleIndex);
126
+ const segmentRawAudio = {
127
+ audioChannels: [segmentAudioSamples],
128
+ sampleRate: sourceRawAudio.sampleRate
129
+ };
130
+ const { wordTimeline: mappedTimeline } = await align(segmentRawAudio, segmentText, alignmentOptions);
131
+ const segmentTimelineWithOffset = addTimeOffsetToTimeline(mappedTimeline, segmentStartTime);
132
+ timeline.push(...segmentTimelineWithOffset);
133
+ }
134
+ return timeline;
135
+ }
136
136
  export const defaultAlignmentOptions = {
137
137
  engine: "dtw",
138
138
  language: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAA8B,yBAAyB,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1K,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAY,uBAAuB,EAAE,4BAA4B,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AACjJ,OAAO,EAAE,0BAA0B,EAAE,0CAA0C,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC5J,OAAO,EAAkB,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,+CAA+C,EAAE,MAAM,iCAAiC,CAAA;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAmB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAEnF,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAuB,EAAE,UAAkB,EAAE,OAAyB;IACjG,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IAE5C,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;IAEjD,IAAI,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAClE,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;IACpD,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAEvF,OAAO,GAAG,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;IAEtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAI,CAAC,cAAe,CAAA;IAEtD,IAAI,QAAgB,CAAA;IAEpB,IAAI,OAAO,CAAC,QAAQ,EAAE;QACrB,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAS,CAAC,CAAA;KACnD;SAAM;QACN,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACzD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QACtG,QAAQ,GAAG,gBAAgB,CAAA;QAE3B,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,CAAA;KAC1F;IAED,QAAQ,GAAG,0CAA0C,CAAC,QAAQ,CAAC,CAAA;IAE/D,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACpE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAExF,IAAI,CAAC,iBAAiB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC1C;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAA;IAE1C,MAAM,CAAC,GAAG,EAAE,CAAA;IACZ,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,WAAW,MAAM,0BAA0B,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IAEhI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAErC,MAAM,EAAE,4BAA4B,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;IAEvG,KAAK,UAAU,qBAAqB;QACnC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAEtD,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;QAE1F,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,+CAA+C,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QAE3K,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACtE,iBAAiB,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;QAEhE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAA;IAChD,CAAC;IAED,IAAI,cAAwB,CAAA;IAE5B,QAAQ,OAAO,CAAC,MAAM,EAAE;QACvB,KAAK,KAAK,CAAC,CAAC;YACX,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAA;YAC9E,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,cAAc,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;YAE7G,MAAK;SACL;QAED,KAAK,QAAQ,CAAC,CAAC;YACd;;;;;;;cAOE;YAEF,MAAM,0BAA0B,GAA2B;gBAC1D,MAAM,EAAE,SAAS;gBACjB,QAAQ;aACR,CAAA;YAED,MAAM,kBAAkB,GAA2B,UAAU,CAAC,0BAA0B,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YAEpH,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YAErG,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAA;YAE9E,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAI,CAAC,oBAAqB,CAAA;YAE/D,cAAc,GAAG,MAAM,4BAA4B,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAA;YAEpL,MAAK;SACL;QAED,KAAK,SAAS,CAAC,CAAC;YACf,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;YAE/D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAQ,CAAA;YAEvC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;YAExD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEtH,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,iBAAiB,IAAI,IAAI,EAAE;gBAC3D,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,qDAAqD,iBAAiB,GAAG,CAAC,CAAA;aACjH;YAED,IAAI,mBAAmB,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;aACpG;YAED,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,cAAc,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAA;YAEzH,MAAK;SACL;QAED,OAAO,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAA;SAC9D;KACD;IAED,4BAA4B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;IAExD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,qCAAqC,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAEhL,MAAM,CAAC,GAAG,EAAE,CAAA;IACZ,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAE/E,OAAO;QACN,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,cAAc;QAC5B,aAAa;QACb,UAAU;QACV,QAAQ;KACR,CAAA;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,cAAwB,EAAE,eAAyB,EAAE,gBAAkC;IAC1H,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE;QAC3C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAA;QAErC,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAA;QAC/C,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAA;QAE3C,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QACxF,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAEpF,MAAM,mBAAmB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAA;QACjH,MAAM,eAAe,GAAa;YACjC,aAAa,EAAE,CAAC,mBAAmB,CAAC;YACpC,UAAU,EAAE,cAAc,CAAC,UAAU;SACrC,CAAA;QAED,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAEpG,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;QAE3F,QAAQ,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAA;KAC3C;IAED,OAAO,QAAQ,CAAA;AAChB,CAAC;AAqCD,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACxD,MAAM,EAAE,KAAK;IAEb,QAAQ,EAAE,SAAS;IAEnB,iBAAiB,EAAE,EAClB;IAED,kBAAkB,EAAE,SAAS;IAE7B,SAAS,EAAE;QACV,eAAe,EAAE,QAAQ;QACzB,UAAU,EAAE,UAAU;KACtB;IAED,SAAS,EAAE,sBAAsB;IAEjC,GAAG,EAAE;QACJ,cAAc,EAAE,GAAG;QACnB,oBAAoB,EAAE,KAAK;KAC3B;IAED,WAAW,EAAE,EACZ;IAED,OAAO,EAAE,sBAAsB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IACrD;QACC,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,gGAAgG;QAC7G,IAAI,EAAE,OAAO;KACb;IACD;QACC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,8CAA8C;QACpD,WAAW,EAAE,qHAAqH;QAClI,IAAI,EAAE,OAAO;KACb;IACD;QACC,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,0IAA0I;QACvJ,IAAI,EAAE,OAAO;KACb;CACD,CAAA"}
@@ -1,7 +1,13 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import { EngineMetadata } from "./Common.js";
3
- export declare function denoiseFile(filename: string, options: DenoisingOptions): Promise<RawAudio>;
4
- export declare function denoise(rawAudio: RawAudio, options: DenoisingOptions): Promise<RawAudio>;
3
+ export declare function denoise(input: AudioSourceParam, options: DenoisingOptions): Promise<{
4
+ denoisedAudio: RawAudio;
5
+ inputRawAudio: RawAudio;
6
+ }>;
7
+ export interface DenoisingResult {
8
+ denoisedAudio: RawAudio;
9
+ inputRawAudio: RawAudio;
10
+ }
5
11
  export type DenoisingMethod = "rnnoise";
6
12
  export interface DenoisingOptions {
7
13
  method?: DenoisingMethod;
@@ -1,23 +1,19 @@
1
1
  import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
3
- import { applyGainDecibels, getAudioPeakDecibels, mixAudio, normalizeAudioLevel } from "../audio/AudioUtilities.js";
2
+ import { applyGainDecibels, ensureRawAudio, getAudioPeakDecibels, mixAudio, normalizeAudioLevel } from "../audio/AudioUtilities.js";
4
3
  import { Logger } from "../utilities/Logger.js";
5
4
  import { logToStderr } from "../utilities/Utilities.js";
6
5
  import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
7
6
  import chalk from "chalk";
8
7
  const log = logToStderr;
9
- export async function denoiseFile(filename, options) {
10
- const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
11
- return denoise(rawAudio, options);
12
- }
13
- export async function denoise(rawAudio, options) {
8
+ export async function denoise(input, options) {
14
9
  const logger = new Logger();
15
10
  const startTime = logger.getTimestamp();
16
11
  logger.start("Prepare for denoising");
17
12
  options = extendDeep(defaultDenoisingOptions, options);
13
+ const inputRawAudio = await ensureRawAudio(input);
18
14
  const processingSampleRate = 48000;
19
15
  logger.start(`Resample audio to ${processingSampleRate} Hz`);
20
- const resampledRawAudio = await resampleAudioSpeex(rawAudio, processingSampleRate, 3);
16
+ const resampledRawAudio = await resampleAudioSpeex(inputRawAudio, processingSampleRate, 3);
21
17
  logger.start(`Initialize ${options.method} module`);
22
18
  let denoisedAudio;
23
19
  switch (options.method) {
@@ -52,8 +48,12 @@ export async function denoise(rawAudio, options) {
52
48
  denoisedAudio = applyGainDecibels(denoisedAudio, preMixPeakDb - postMixPeakDb);
53
49
  }
54
50
  logger.end();
51
+ logger.log('');
55
52
  logger.logDuration("Total denoising time", startTime, chalk.magentaBright);
56
- return denoisedAudio;
53
+ return {
54
+ denoisedAudio,
55
+ inputRawAudio
56
+ };
57
57
  }
58
58
  export const defaultDenoisingOptions = {
59
59
  method: "rnnoise",
@@ -1 +1 @@
1
- {"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,29 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import * as API from "./API.js";
3
- import type { WhisperModelName } from "../recognition/WhisperSTT.js";
4
- export declare function detectSpeechFileLanguage(filename: string, options: SpeechLanguageDetectionOptions): Promise<{
3
+ import { type WhisperOptions } from "../recognition/WhisperSTT.js";
4
+ export declare function detectSpeechLanguage(input: AudioSourceParam, options: SpeechLanguageDetectionOptions): Promise<SpeechLanguageDetectionResult>;
5
+ export interface SpeechLanguageDetectionResult {
5
6
  detectedLanguage: string;
6
7
  detectedLanguageName: string;
7
- detectedLanguageProbabilities: API.LanguageDetectionResults;
8
- }>;
9
- export declare function detectSpeechLanguage(rawAudio: RawAudio, options: SpeechLanguageDetectionOptions): Promise<{
10
- detectedLanguage: string;
11
- detectedLanguageName: string;
12
- detectedLanguageProbabilities: API.LanguageDetectionResults;
13
- }>;
14
- export declare function detectLanguageByParts(sourceRawAudio: RawAudio, getResultsForAudioPart: (audioPart: RawAudio) => Promise<LanguageDetectionResults>, audioPartDuration?: number, hopDuration?: number): Promise<API.LanguageDetectionResults>;
8
+ detectedLanguageProbabilities: LanguageDetectionResults;
9
+ inputRawAudio: RawAudio;
10
+ }
11
+ export declare function detectSpeechLanguageByParts(sourceRawAudio: RawAudio, getResultsForAudioPart: (audioPart: RawAudio) => Promise<LanguageDetectionResults>, audioPartDuration?: number, hopDuration?: number): Promise<API.LanguageDetectionResults>;
15
12
  export type SpeechLanguageDetectionEngine = "silero" | "whisper";
16
13
  export interface SpeechLanguageDetectionOptions {
17
14
  engine?: SpeechLanguageDetectionEngine;
18
15
  defaultLanguage?: string;
19
16
  fallbackThresholdProbability?: number;
20
17
  silero?: {};
21
- whisper?: {
22
- model: WhisperModelName;
23
- };
18
+ whisper?: WhisperOptions;
24
19
  }
25
20
  export declare const defaultSpeechLanguageDetectionOptions: SpeechLanguageDetectionOptions;
26
- export declare function detectTextLanguage(text: string, options: TextLanguageDetectionOptions): Promise<{
21
+ export declare function detectTextLanguage(input: string, options: TextLanguageDetectionOptions): Promise<TextLanguageDetectionResult>;
22
+ export interface TextLanguageDetectionResult {
27
23
  detectedLanguage: string;
28
24
  detectedLanguageName: string;
29
- detectedLanguageProbabilities: API.LanguageDetectionResults;
30
- }>;
25
+ detectedLanguageProbabilities: LanguageDetectionResults;
26
+ }
31
27
  export type LanguageDetectionResults = LanguageDetectionResultsEntry[];
32
28
  export type LanguageDetectionResultsEntry = {
33
29
  language: string;
@@ -1,8 +1,6 @@
1
1
  import { deepClone, extendDeep } from "../utilities/ObjectUtilities.js";
2
- import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
3
- import { downmixToMonoAndNormalize, getRawAudioDuration, sliceRawAudioByTime } from "../audio/AudioUtilities.js";
2
+ import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevel, sliceRawAudioByTime, trimAudioEnd } from "../audio/AudioUtilities.js";
4
3
  import { Logger } from "../utilities/Logger.js";
5
- import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
6
4
  import { logToStderr } from "../utilities/Utilities.js";
7
5
  import path from "path";
8
6
  import { formatLanguageCodeWithName, languageCodeToName } from "../utilities/Locale.js";
@@ -12,19 +10,17 @@ const log = logToStderr;
12
10
  /////////////////////////////////////////////////////////////////////////////////////////////
13
11
  // Speech language detection
14
12
  /////////////////////////////////////////////////////////////////////////////////////////////
15
- export async function detectSpeechFileLanguage(filename, options) {
16
- const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
17
- return detectSpeechLanguage(rawAudio, options);
18
- }
19
- export async function detectSpeechLanguage(rawAudio, options) {
13
+ export async function detectSpeechLanguage(input, options) {
20
14
  const logger = new Logger();
21
15
  const startTime = logger.getTimestamp();
22
16
  logger.start("Prepare for speech language detection");
17
+ const inputRawAudio = await ensureRawAudio(input);
18
+ let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
19
+ sourceRawAudio = normalizeAudioLevel(sourceRawAudio);
20
+ sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
23
21
  options = extendDeep(defaultSpeechLanguageDetectionOptions, options);
24
22
  const defaultLanguage = options.defaultLanguage;
25
23
  const fallbackThresholdProbability = options.fallbackThresholdProbability;
26
- rawAudio = await resampleAudioSpeex(rawAudio, 16000);
27
- rawAudio = downmixToMonoAndNormalize(rawAudio);
28
24
  logger.start(`Initialize ${options.engine} module`);
29
25
  let detectedLanguageProbabilities;
30
26
  switch (options.engine) {
@@ -36,7 +32,7 @@ export async function detectSpeechLanguage(rawAudio, options) {
36
32
  const modelPath = path.join(modelDir, "lang_classifier_95.onnx");
37
33
  const languageDictionaryPath = path.join(modelDir, "lang_dict_95.json");
38
34
  const languageGroupDictionaryPath = path.join(modelDir, "lang_group_dict_95.json");
39
- const languageResults = await SileroLanguageDetection.detectLanguage(rawAudio, modelPath, languageDictionaryPath, languageGroupDictionaryPath);
35
+ const languageResults = await SileroLanguageDetection.detectLanguage(sourceRawAudio, modelPath, languageDictionaryPath, languageGroupDictionaryPath);
40
36
  detectedLanguageProbabilities = languageResults;
41
37
  break;
42
38
  }
@@ -45,7 +41,7 @@ export async function detectSpeechLanguage(rawAudio, options) {
45
41
  const whisperOptions = options.whisper;
46
42
  const { modelName, modelDir, tokenizerDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, undefined);
47
43
  logger.end();
48
- detectedLanguageProbabilities = await WhisperSTT.detectLanguage(rawAudio, modelName, modelDir, tokenizerDir);
44
+ detectedLanguageProbabilities = await WhisperSTT.detectLanguage(sourceRawAudio, modelName, modelDir, tokenizerDir);
49
45
  break;
50
46
  }
51
47
  default: {
@@ -62,9 +58,9 @@ export async function detectSpeechLanguage(rawAudio, options) {
62
58
  }
63
59
  logger.end();
64
60
  logger.logDuration("\nTotal detection time", startTime, chalk.magentaBright);
65
- return { detectedLanguage, detectedLanguageName: languageCodeToName(detectedLanguage), detectedLanguageProbabilities };
61
+ return { detectedLanguage, detectedLanguageName: languageCodeToName(detectedLanguage), detectedLanguageProbabilities, inputRawAudio };
66
62
  }
67
- export async function detectLanguageByParts(sourceRawAudio, getResultsForAudioPart, audioPartDuration = 30, hopDuration = 15) {
63
+ export async function detectSpeechLanguageByParts(sourceRawAudio, getResultsForAudioPart, audioPartDuration = 30, hopDuration = 15) {
68
64
  const logger = new Logger();
69
65
  const audioDuration = getRawAudioDuration(sourceRawAudio);
70
66
  const resultsForParts = [];
@@ -104,7 +100,7 @@ export const defaultSpeechLanguageDetectionOptions = {
104
100
  /////////////////////////////////////////////////////////////////////////////////////////////
105
101
  // Text language detection
106
102
  /////////////////////////////////////////////////////////////////////////////////////////////
107
- export async function detectTextLanguage(text, options) {
103
+ export async function detectTextLanguage(input, options) {
108
104
  const logger = new Logger();
109
105
  options = extendDeep(defaultTextLanguageDetectionOptions, options);
110
106
  const defaultLanguage = options.defaultLanguage;
@@ -115,13 +111,13 @@ export async function detectTextLanguage(text, options) {
115
111
  case "tinyld": {
116
112
  const { detectLanguage } = await import("../text-language-detection/TinyLDLanguageDetection.js");
117
113
  logger.start("Detecting text language using tinyld");
118
- detectedLanguageProbabilities = await detectLanguage(text);
114
+ detectedLanguageProbabilities = await detectLanguage(input);
119
115
  break;
120
116
  }
121
117
  case "fasttext": {
122
118
  const { detectLanguage } = await import("../text-language-detection/FastTextLanguageDetection.js");
123
119
  logger.start("Detecting text language using FastText");
124
- detectedLanguageProbabilities = await detectLanguage(text);
120
+ detectedLanguageProbabilities = await detectLanguage(input);
125
121
  break;
126
122
  }
127
123
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageDetection.js","sourceRoot":"","sources":["../../src/api/LanguageDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LanguageDetection.js","sourceRoot":"","sources":["../../src/api/LanguageDetection.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import * as API from "./API.js";
3
3
  import { Timeline } from "../utilities/Timeline.js";
4
4
  import { type WhisperOptions } from "../recognition/WhisperSTT.js";
5
5
  import { SubtitlesConfig } from "../subtitles/Subtitles.js";
6
- export declare function recognizeFile(filename: string, options: RecognitionOptions): Promise<API.RecognitionResult>;
7
- export declare function recognize(inputRawAudio: RawAudio, options: RecognitionOptions): Promise<RecognitionResult>;
6
+ export declare function recognize(input: AudioSourceParam, options: RecognitionOptions): Promise<RecognitionResult>;
8
7
  export interface RecognitionResult {
9
8
  transcript: string;
10
9
  timeline: Timeline;
11
- rawAudio: RawAudio;
10
+ wordTimeline: Timeline;
12
11
  language: string;
12
+ inputRawAudio: RawAudio;
13
13
  }
14
14
  export type RecognitionEngine = "whisper" | "vosk" | "silero" | "google-cloud" | "microsoft-azure" | "amazon-transcribe";
15
15
  export interface RecognitionOptions {