@mastra/voice-speechify 0.1.3-alpha.8 → 0.1.3

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.cjs CHANGED
@@ -746,7 +746,11 @@ var SpeechifyVoice = class extends voice.MastraVoice {
746
746
  async streamToString(stream) {
747
747
  const chunks = [];
748
748
  for await (const chunk of stream) {
749
- chunks.push(Buffer.from(chunk));
749
+ if (typeof chunk === "string") {
750
+ chunks.push(Buffer.from(chunk));
751
+ } else {
752
+ chunks.push(chunk);
753
+ }
750
754
  }
751
755
  return Buffer.concat(chunks).toString("utf-8");
752
756
  }
package/dist/index.js CHANGED
@@ -744,7 +744,11 @@ var SpeechifyVoice = class extends MastraVoice {
744
744
  async streamToString(stream) {
745
745
  const chunks = [];
746
746
  for await (const chunk of stream) {
747
- chunks.push(Buffer.from(chunk));
747
+ if (typeof chunk === "string") {
748
+ chunks.push(Buffer.from(chunk));
749
+ } else {
750
+ chunks.push(chunk);
751
+ }
748
752
  }
749
753
  return Buffer.concat(chunks).toString("utf-8");
750
754
  }
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@mastra/voice-speechify",
3
- "version": "0.1.3-alpha.8",
3
+ "version": "0.1.3",
4
4
  "description": "Mastra Speechify voice integration",
5
5
  "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
6
9
  "main": "dist/index.js",
7
10
  "types": "dist/index.d.ts",
8
11
  "exports": {
@@ -19,21 +22,21 @@
19
22
  "./package.json": "./package.json"
20
23
  },
21
24
  "dependencies": {
22
- "@speechify/api-sdk": "^2.3.0",
23
- "zod": "^3.24.1",
24
- "@mastra/core": "^0.5.0-alpha.8"
25
+ "@speechify/api-sdk": "^2.4.1",
26
+ "zod": "^3.24.2",
27
+ "@mastra/core": "^0.5.0"
25
28
  },
26
29
  "devDependencies": {
27
- "@microsoft/api-extractor": "^7.49.2",
28
- "@types/node": "^22.13.1",
29
- "tsup": "^8.0.1",
30
- "typescript": "^5.7.3",
31
- "vitest": "^2.1.8",
32
- "eslint": "^9.20.1",
33
- "@internal/lint": "0.0.0"
30
+ "@microsoft/api-extractor": "^7.52.1",
31
+ "@types/node": "^22.13.10",
32
+ "eslint": "^9.22.0",
33
+ "tsup": "^8.4.0",
34
+ "typescript": "^5.8.2",
35
+ "vitest": "^2.1.9",
36
+ "@internal/lint": "0.0.1"
34
37
  },
35
38
  "scripts": {
36
- "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake",
39
+ "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
37
40
  "build:watch": "pnpm build --watch",
38
41
  "lint": "eslint .",
39
42
  "test": "vitest run"
@@ -1,23 +0,0 @@
1
-
2
- > @mastra/voice-speechify@0.1.3-alpha.8 build /home/runner/work/mastra/mastra/voice/speechify
3
- > tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake
4
-
5
- CLI Building entry: src/index.ts
6
- CLI Using tsconfig: tsconfig.json
7
- CLI tsup v8.3.6
8
- TSC Build start
9
- TSC ⚡️ Build success in 6059ms
10
- DTS Build start
11
- CLI Target: es2022
12
- Analysis will use the bundled TypeScript version 5.7.3
13
- Writing package typings: /home/runner/work/mastra/mastra/voice/speechify/dist/_tsup-dts-rollup.d.ts
14
- Analysis will use the bundled TypeScript version 5.7.3
15
- Writing package typings: /home/runner/work/mastra/mastra/voice/speechify/dist/_tsup-dts-rollup.d.cts
16
- DTS ⚡️ Build success in 9235ms
17
- CLI Cleaning output folder
18
- ESM Build start
19
- CJS Build start
20
- ESM dist/index.js 10.28 KB
21
- ESM ⚡️ Build success in 411ms
22
- CJS dist/index.cjs 10.31 KB
23
- CJS ⚡️ Build success in 411ms
package/CHANGELOG.md DELETED
@@ -1,220 +0,0 @@
1
- # @mastra/voice-speechify
2
-
3
- ## 0.1.3-alpha.8
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [506f1d5]
8
- - @mastra/core@0.5.0-alpha.8
9
-
10
- ## 0.1.3-alpha.7
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [ee667a2]
15
- - @mastra/core@0.5.0-alpha.7
16
-
17
- ## 0.1.3-alpha.6
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies [f6678e4]
22
- - @mastra/core@0.5.0-alpha.6
23
-
24
- ## 0.1.3-alpha.5
25
-
26
- ### Patch Changes
27
-
28
- - Updated dependencies [22643eb]
29
- - Updated dependencies [6feb23f]
30
- - Updated dependencies [f2d6727]
31
- - Updated dependencies [301e4ee]
32
- - Updated dependencies [dfbe4e9]
33
- - Updated dependencies [9e81f35]
34
- - Updated dependencies [caefaa2]
35
- - Updated dependencies [c151ae6]
36
- - Updated dependencies [52e0418]
37
- - Updated dependencies [03236ec]
38
- - Updated dependencies [3764e71]
39
- - Updated dependencies [df982db]
40
- - Updated dependencies [0461849]
41
- - Updated dependencies [2259379]
42
- - Updated dependencies [358f069]
43
- - @mastra/core@0.5.0-alpha.5
44
-
45
- ## 0.1.3-alpha.4
46
-
47
- ### Patch Changes
48
-
49
- - Updated dependencies [d79aedf]
50
- - @mastra/core@0.5.0-alpha.4
51
-
52
- ## 0.1.3-alpha.3
53
-
54
- ### Patch Changes
55
-
56
- - Updated dependencies [3d0e290]
57
- - @mastra/core@0.5.0-alpha.3
58
-
59
- ## 0.1.3-alpha.2
60
-
61
- ### Patch Changes
62
-
63
- - Updated dependencies [02ffb7b]
64
- - @mastra/core@0.5.0-alpha.2
65
-
66
- ## 0.1.3-alpha.1
67
-
68
- ### Patch Changes
69
-
70
- - Updated dependencies [dab255b]
71
- - @mastra/core@0.5.0-alpha.1
72
-
73
- ## 0.1.3-alpha.0
74
-
75
- ### Patch Changes
76
-
77
- - Updated dependencies [59df7b6]
78
- - Updated dependencies [29f3a82]
79
- - Updated dependencies [59df7b6]
80
- - Updated dependencies [c139344]
81
- - @mastra/core@0.5.0-alpha.0
82
-
83
- ## 0.1.2
84
-
85
- ### Patch Changes
86
-
87
- - Updated dependencies [1da20e7]
88
- - @mastra/core@0.4.4
89
-
90
- ## 0.1.2-alpha.0
91
-
92
- ### Patch Changes
93
-
94
- - Updated dependencies [1da20e7]
95
- - @mastra/core@0.4.4-alpha.0
96
-
97
- ## 0.1.1
98
-
99
- ### Patch Changes
100
-
101
- - bb4f447: Add support for commonjs
102
- - Updated dependencies [0d185b1]
103
- - Updated dependencies [ed55f1d]
104
- - Updated dependencies [06aa827]
105
- - Updated dependencies [0fd78ac]
106
- - Updated dependencies [2512a93]
107
- - Updated dependencies [e62de74]
108
- - Updated dependencies [0d25b75]
109
- - Updated dependencies [fd14a3f]
110
- - Updated dependencies [8d13b14]
111
- - Updated dependencies [3f369a2]
112
- - Updated dependencies [3ee4831]
113
- - Updated dependencies [4d4e1e1]
114
- - Updated dependencies [bb4f447]
115
- - Updated dependencies [108793c]
116
- - Updated dependencies [5f28f44]
117
- - Updated dependencies [dabecf4]
118
- - @mastra/core@0.4.3
119
-
120
- ## 0.1.1-alpha.4
121
-
122
- ### Patch Changes
123
-
124
- - Updated dependencies [dabecf4]
125
- - @mastra/core@0.4.3-alpha.4
126
-
127
- ## 0.1.1-alpha.3
128
-
129
- ### Patch Changes
130
-
131
- - bb4f447: Add support for commonjs
132
- - Updated dependencies [0fd78ac]
133
- - Updated dependencies [0d25b75]
134
- - Updated dependencies [fd14a3f]
135
- - Updated dependencies [3f369a2]
136
- - Updated dependencies [4d4e1e1]
137
- - Updated dependencies [bb4f447]
138
- - @mastra/core@0.4.3-alpha.3
139
-
140
- ## 0.1.1-alpha.2
141
-
142
- ### Patch Changes
143
-
144
- - Updated dependencies [2512a93]
145
- - Updated dependencies [e62de74]
146
- - @mastra/core@0.4.3-alpha.2
147
-
148
- ## 0.1.1-alpha.1
149
-
150
- ### Patch Changes
151
-
152
- - Updated dependencies [0d185b1]
153
- - Updated dependencies [ed55f1d]
154
- - Updated dependencies [8d13b14]
155
- - Updated dependencies [3ee4831]
156
- - Updated dependencies [108793c]
157
- - Updated dependencies [5f28f44]
158
- - @mastra/core@0.4.3-alpha.1
159
-
160
- ## 0.1.1-alpha.0
161
-
162
- ### Patch Changes
163
-
164
- - Updated dependencies [06aa827]
165
- - @mastra/core@0.4.3-alpha.0
166
-
167
- ## 0.1.0
168
-
169
- ### Patch Changes
170
-
171
- - f477df7: deprecate @mastra/speech-speechify for @mastra/voice-speechify
172
- - Updated dependencies [7fceae1]
173
- - Updated dependencies [8d94c3e]
174
- - Updated dependencies [99dcdb5]
175
- - Updated dependencies [6cb63e0]
176
- - Updated dependencies [f626fbb]
177
- - Updated dependencies [e752340]
178
- - Updated dependencies [eb91535]
179
- - @mastra/core@0.4.2
180
-
181
- ## 0.1.0-alpha.4
182
-
183
- ### Patch Changes
184
-
185
- - Updated dependencies [8d94c3e]
186
- - Updated dependencies [99dcdb5]
187
- - Updated dependencies [e752340]
188
- - Updated dependencies [eb91535]
189
- - @mastra/core@0.4.2-alpha.2
190
-
191
- ## 0.1.0-alpha.3
192
-
193
- ### Patch Changes
194
-
195
- - Updated dependencies [6cb63e0]
196
- - @mastra/core@0.4.2-alpha.1
197
-
198
- ## 0.1.0-alpha.2
199
-
200
- ### Patch Changes
201
-
202
- - f477df7: deprecate @mastra/speech-speechify for @mastra/voice-speechify
203
-
204
- ## 0.1.0 (2024-XX-XX)
205
-
206
- This package replaces the deprecated @mastra/speech-speechify package. All functionality has been migrated to this new package with a more consistent naming scheme.
207
-
208
- ### Changes from @mastra/speech-speechify
209
-
210
- - Package renamed from @mastra/speech-speechify to @mastra/voice-speechify
211
- - API changes:
212
- - `SpeechifyTTS` class renamed to `SpeechifyVoice`
213
- - `generate()` and `stream()` methods combined into `speak()`
214
- - `voices()` method renamed to `getSpeakers()`
215
- - Constructor configuration simplified
216
- - Added support for text stream input
217
- - All core functionality remains the same
218
- - Import paths should be updated from '@mastra/speech-speechify' to '@mastra/voice-speechify'
219
-
220
- For a complete history of changes prior to the rename, please see the changelog of the original package.
package/eslint.config.js DELETED
@@ -1,6 +0,0 @@
1
- import { createConfig } from '@internal/lint/eslint';
2
-
3
- const config = await createConfig();
4
-
5
- /** @type {import("eslint").Linter.Config[]} */
6
- export default [...config];
package/src/index.test.ts DELETED
@@ -1,101 +0,0 @@
1
- import { writeFileSync, mkdirSync } from 'fs';
2
- import path from 'path';
3
- import { Readable } from 'stream';
4
- import { describe, expect, it, beforeAll } from 'vitest';
5
-
6
- import { SpeechifyVoice } from './index';
7
-
8
- describe('SpeechifyVoice Integration Tests', () => {
9
- let voice: SpeechifyVoice;
10
- const outputDir = path.join(process.cwd(), 'test-outputs');
11
-
12
- beforeAll(() => {
13
- // Create output directory if it doesn't exist
14
- try {
15
- mkdirSync(outputDir, { recursive: true });
16
- } catch (err) {
17
- console.error('Failed to create output directory', err);
18
- }
19
-
20
- voice = new SpeechifyVoice({
21
- speechModel: {
22
- name: 'simba-multilingual',
23
- },
24
- speaker: 'george',
25
- });
26
- });
27
-
28
- describe('voices', () => {
29
- it('should list available voices', async () => {
30
- const voices = await voice.getSpeakers();
31
- expect(voices).toBeInstanceOf(Array);
32
- expect(voices.length).toBeGreaterThan(0);
33
- expect(voices[0]).toHaveProperty('voiceId');
34
- });
35
- });
36
-
37
- describe('speech', () => {
38
- it('should generate audio and save to file from text input', async () => {
39
- const result = await voice.speak('Hello from Mastra Voice - Speechify');
40
- const outputPath = path.join(outputDir, 'speechify-speech-test.mp3');
41
- const chunks: Buffer[] = [];
42
- for await (const chunk of result) {
43
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
44
- }
45
-
46
- const audioBuffer = Buffer.concat(chunks);
47
- expect(audioBuffer.length).toBeGreaterThan(0);
48
- writeFileSync(outputPath, audioBuffer);
49
- }, 10000);
50
-
51
- it('should work with different parameters', async () => {
52
- const result = await voice.speak('Test with parameters', { speaker: 'george' });
53
- const chunks: Buffer[] = [];
54
- for await (const chunk of result) {
55
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
56
- }
57
- const audioBuffer = Buffer.concat(chunks);
58
- const outputPath = path.join(outputDir, 'speechify-speech-test-params.mp3');
59
- writeFileSync(outputPath, audioBuffer);
60
- }, 10000);
61
-
62
- it('should generate audio from a stream input', async () => {
63
- const inputStream = Readable.from(['Hello from stream input - Speechify']);
64
- const result = await voice.speak(inputStream);
65
- const chunks: Buffer[] = [];
66
- for await (const chunk of result) {
67
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
68
- }
69
-
70
- const audioBuffer = Buffer.concat(chunks);
71
- expect(audioBuffer.length).toBeGreaterThan(0);
72
- const outputPath = path.join(outputDir, 'speechify-speech-test-stream.mp3');
73
- writeFileSync(outputPath, audioBuffer);
74
- }, 10000);
75
-
76
- it('should generate audio using default SpeechifyVoice instance', async () => {
77
- const defaultVoice = new SpeechifyVoice();
78
- const result = await defaultVoice.speak('Hello from default SpeechifyVoice instance');
79
- const chunks: Buffer[] = [];
80
- for await (const chunk of result) {
81
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
82
- }
83
-
84
- const audioBuffer = Buffer.concat(chunks);
85
- expect(audioBuffer.length).toBeGreaterThan(0);
86
- const outputPath = path.join(outputDir, 'speechify-speech-test-default.mp3');
87
- writeFileSync(outputPath, audioBuffer);
88
- }, 10000);
89
- });
90
-
91
- // Error cases
92
- describe('error handling', () => {
93
- it('should handle empty text', async () => {
94
- await expect(voice.speak('')).rejects.toThrow();
95
- });
96
-
97
- it('should handle invalid voice', async () => {
98
- await expect(voice.speak('Test', { speaker: 'invalid_voice' })).rejects.toThrow();
99
- });
100
- });
101
- });
package/src/index.ts DELETED
@@ -1,104 +0,0 @@
1
- import { Readable } from 'stream';
2
-
3
- import { MastraVoice } from '@mastra/core/voice';
4
- import { Speechify } from '@speechify/api-sdk';
5
- import type { AudioStreamRequest, VoiceModelName } from '@speechify/api-sdk';
6
-
7
- import { SPEECHIFY_VOICES } from './voices';
8
- import type { SpeechifyVoiceId } from './voices';
9
-
10
- interface SpeechifyConfig {
11
- name?: VoiceModelName;
12
- apiKey?: string;
13
- }
14
-
15
- export class SpeechifyVoice extends MastraVoice {
16
- private client: Speechify;
17
-
18
- constructor({ speechModel, speaker }: { speechModel?: SpeechifyConfig; speaker?: SpeechifyVoiceId } = {}) {
19
- super({
20
- speechModel: {
21
- name: speechModel?.name ?? 'simba-english',
22
- apiKey: speechModel?.apiKey ?? process.env.SPEECHIFY_API_KEY,
23
- },
24
- speaker: speaker ?? 'george',
25
- });
26
-
27
- const apiKey = speechModel?.apiKey ?? process.env.SPEECHIFY_API_KEY;
28
- if (!apiKey) {
29
- throw new Error('SPEECHIFY_API_KEY is not set');
30
- }
31
-
32
- this.client = new Speechify({ apiKey });
33
- }
34
-
35
- async getSpeakers() {
36
- return this.traced(
37
- () =>
38
- SPEECHIFY_VOICES.map(voice => ({
39
- voiceId: voice,
40
- name: voice,
41
- })),
42
- 'voice.speechify.voices',
43
- )();
44
- }
45
-
46
- private async streamToString(stream: NodeJS.ReadableStream): Promise<string> {
47
- const chunks: Buffer[] = [];
48
- for await (const chunk of stream) {
49
- chunks.push(Buffer.from(chunk));
50
- }
51
- return Buffer.concat(chunks).toString('utf-8');
52
- }
53
-
54
- async speak(
55
- input: string | NodeJS.ReadableStream,
56
- options?: {
57
- speaker?: string;
58
- } & Omit<AudioStreamRequest, 'voiceId' | 'input'>,
59
- ): Promise<NodeJS.ReadableStream> {
60
- const text = typeof input === 'string' ? input : await this.streamToString(input);
61
-
62
- return this.traced(async () => {
63
- const request: AudioStreamRequest = {
64
- input: text,
65
- model: (options?.model || this.speechModel?.name) as VoiceModelName,
66
- voiceId: (options?.speaker || this.speaker) as SpeechifyVoiceId,
67
- ...options,
68
- };
69
-
70
- const webStream = await this.client.audioStream(request);
71
- const reader = webStream.getReader();
72
-
73
- const nodeStream = new Readable({
74
- read: async function () {
75
- try {
76
- const { done, value } = await reader.read();
77
- if (done) {
78
- this.push(null);
79
- } else {
80
- this.push(value);
81
- }
82
- } catch (error) {
83
- this.destroy(error as Error);
84
- }
85
- },
86
- });
87
-
88
- nodeStream.on('end', () => {
89
- reader.releaseLock();
90
- });
91
-
92
- return nodeStream;
93
- }, 'voice.speechify.speak')();
94
- }
95
-
96
- async listen(
97
- _input: NodeJS.ReadableStream,
98
- _options?: Record<string, unknown>,
99
- ): Promise<string | NodeJS.ReadableStream> {
100
- throw new Error('Speechify does not support speech recognition');
101
- }
102
- }
103
-
104
- export type { SpeechifyConfig, SpeechifyVoiceId };
package/src/voices.ts DELETED
@@ -1,711 +0,0 @@
1
- export const SPEECHIFY_VOICES = [
2
- 'henry',
3
- 'bwyneth',
4
- 'carly',
5
- 'kristy',
6
- 'oliver',
7
- 'tasha',
8
- 'joe',
9
- 'lisa',
10
- 'george',
11
- 'emily',
12
- 'rob',
13
- 'russell',
14
- 'benjamin',
15
- 'michael',
16
- 'kim',
17
- 'ankit',
18
- 'arun',
19
- 'carol',
20
- 'helen',
21
- 'julie',
22
- 'linda',
23
- 'mark',
24
- 'nick',
25
- 'elijah',
26
- 'beverly',
27
- 'collin',
28
- 'erin',
29
- 'jack',
30
- 'jesse',
31
- 'ken',
32
- 'lindsey',
33
- 'monica',
34
- 'phil',
35
- 'ron',
36
- 'stacy',
37
- 'archie',
38
- 'evelyn',
39
- 'freddie',
40
- 'harper',
41
- 'jacob',
42
- 'james',
43
- 'mason',
44
- 'victoria',
45
- 'christina',
46
- 'douglas',
47
- 'lauren',
48
- 'patricia',
49
- 'jennifer',
50
- 'robert',
51
- 'peter',
52
- 'jeremy',
53
- 'barbara',
54
- 'susan',
55
- 'charles',
56
- 'harold',
57
- 'sarah',
58
- 'karen',
59
- 'anthony',
60
- 'donald',
61
- 'paul',
62
- 'steven',
63
- 'andrew',
64
- 'kenneth',
65
- 'joshua',
66
- 'betty',
67
- 'margaret',
68
- 'kyle',
69
- 'edward',
70
- 'ronald',
71
- 'timothy',
72
- 'sandra',
73
- 'dorothy',
74
- 'jeffrey',
75
- 'kimberly',
76
- 'donna',
77
- 'walter',
78
- 'megan',
79
- 'richard',
80
- 'amanda',
81
- 'melissa',
82
- 'deborah',
83
- 'gary',
84
- 'rebecca',
85
- 'sharon',
86
- 'cynthia',
87
- 'kathleen',
88
- 'joan',
89
- 'shirley',
90
- 'angela',
91
- 'anna',
92
- 'brenda',
93
- 'larry',
94
- 'keith',
95
- 'scott',
96
- 'pamela',
97
- 'samuel',
98
- 'gregory',
99
- 'samantha',
100
- 'katherine',
101
- 'christine',
102
- 'frank',
103
- 'alexander',
104
- 'raymond',
105
- 'debra',
106
- 'patrick',
107
- 'catherine',
108
- 'carolyn',
109
- 'janet',
110
- 'ruth',
111
- 'zachary',
112
- 'heather',
113
- 'diane',
114
- 'dennis',
115
- 'jerry',
116
- 'tyler',
117
- 'aaron',
118
- 'virginia',
119
- 'joyce',
120
- 'judith',
121
- 'kelly',
122
- 'nathan',
123
- 'terry',
124
- 'carl',
125
- 'gerald',
126
- 'jaqueline',
127
- 'cheryl',
128
- 'christian',
129
- 'rohit',
130
- 'gloria',
131
- 'arthur',
132
- 'austin',
133
- 'sean',
134
- 'martha',
135
- 'randy',
136
- 'ralph',
137
- 'roy',
138
- 'alan',
139
- 'logan',
140
- 'willie',
141
- 'kathryn',
142
- 'frances',
143
- 'madison',
144
- 'bruce',
145
- 'billy',
146
- 'jordan',
147
- 'bryan',
148
- 'dylan',
149
- 'vincent',
150
- 'eugene',
151
- 'janice',
152
- 'jean',
153
- 'abigail',
154
- 'alice',
155
- 'bobby',
156
- 'julia',
157
- 'johnny',
158
- 'judy',
159
- 'bradley',
160
- 'hunter',
161
- 'dale',
162
- 'howard',
163
- 'fred',
164
- 'danielle',
165
- 'marilyn',
166
- 'blake',
167
- 'doris',
168
- 'denise',
169
- 'issac',
170
- 'theresa',
171
- 'natalie',
172
- 'aiden',
173
- 'brittany',
174
- 'charlotte',
175
- 'marie',
176
- 'kayla',
177
- 'alexis',
178
- 'lori',
179
- 'landon',
180
- 'tiffany',
181
- 'marcus',
182
- 'martin',
183
- 'curtis',
184
- 'kathy',
185
- 'todd',
186
- 'leonard',
187
- 'calvin',
188
- 'rose',
189
- 'ava',
190
- 'bonnie',
191
- 'peggy',
192
- 'edwin',
193
- 'don',
194
- 'ruby',
195
- 'crystal',
196
- 'craig',
197
- 'norma',
198
- 'paula',
199
- 'annie',
200
- 'shawn',
201
- 'lillian',
202
- 'robin',
203
- 'evan',
204
- 'garrette',
205
- 'francis',
206
- 'danny',
207
- 'stanley',
208
- 'lucy',
209
- 'jeffery',
210
- 'herbert',
211
- 'lee',
212
- 'april',
213
- 'anne',
214
- 'tammy',
215
- 'trevor',
216
- 'eleanor',
217
- 'regina',
218
- 'carrie',
219
- 'leah',
220
- 'beth',
221
- 'cody',
222
- 'shane',
223
- 'dana',
224
- 'allison',
225
- 'dawn',
226
- 'julian',
227
- 'wendy',
228
- 'travis',
229
- 'florence',
230
- 'tracy',
231
- 'adrian',
232
- 'phillis',
233
- 'carole',
234
- 'mildred',
235
- 'cameron',
236
- 'chad',
237
- 'connie',
238
- 'gladys',
239
- 'arlene',
240
- 'jana',
241
- 'leona',
242
- 'miriam',
243
- 'lorrie',
244
- 'velma',
245
- 'eduardo',
246
- 'bennie',
247
- 'rene',
248
- 'ed',
249
- 'stuart',
250
- 'terrence',
251
- 'delbert',
252
- 'colin',
253
- 'susanne',
254
- 'hugo',
255
- 'ignacio',
256
- 'sheldon',
257
- 'josefina',
258
- 'corinne',
259
- 'lana',
260
- 'cherry',
261
- 'erick',
262
- 'frankie',
263
- 'stewart',
264
- 'claudette',
265
- 'doyle',
266
- 'darrel',
267
- 'janine',
268
- 'simone',
269
- 'casey',
270
- 'leta',
271
- 'rogelio',
272
- 'lorraine',
273
- 'terence',
274
- 'santiago',
275
- 'alonzo',
276
- 'benny',
277
- 'elisa',
278
- 'dee',
279
- 'bert',
280
- 'elbert',
281
- 'charmaine',
282
- 'roslyn',
283
- 'shelley',
284
- 'ramiro',
285
- 'noel',
286
- 'mercedes',
287
- 'christie',
288
- 'laurel',
289
- 'spencer',
290
- 'pat',
291
- 'dorthy',
292
- 'jeanie',
293
- 'clare',
294
- 'aileen',
295
- 'grady',
296
- 'deana',
297
- 'cornelius',
298
- 'cecelia',
299
- 'maryann',
300
- 'rolando',
301
- 'lamar',
302
- 'susana',
303
- 'katharine',
304
- 'clay',
305
- 'liza',
306
- 'jerri',
307
- 'rochelle',
308
- 'cathy',
309
- 'percy',
310
- 'dexter',
311
- 'maribel',
312
- 'rosemarie',
313
- 'bradford',
314
- 'kari',
315
- 'nikki',
316
- 'bernadette',
317
- 'eugenia',
318
- 'merie',
319
- 'darie',
320
- 'amon',
321
- 'moses',
322
- 'concetta',
323
- 'irvin',
324
- 'rodolfo',
325
- 'christi',
326
- 'roman',
327
- 'janie',
328
- 'marcy',
329
- 'lindy',
330
- 'tommie',
331
- 'darnell',
332
- 'randal',
333
- 'selena',
334
- 'shari',
335
- 'antoinette',
336
- 'timmy',
337
- 'darrin',
338
- 'margo',
339
- 'sherri',
340
- 'erika',
341
- 'robbie',
342
- 'marcella',
343
- 'lela',
344
- 'winston',
345
- 'jeannine',
346
- 'brendan',
347
- 'christa',
348
- 'deloris',
349
- 'toby',
350
- 'elva',
351
- 'van',
352
- 'abel',
353
- 'myron',
354
- 'gracie',
355
- 'gwen',
356
- 'melba',
357
- 'boyd',
358
- 'shawna',
359
- 'courtney',
360
- 'marlena',
361
- 'cathie',
362
- 'ramesh',
363
- 'rita',
364
- 'joel',
365
- 'derek',
366
- 'earl',
367
- 'brett',
368
- 'ellis',
369
- 'ian',
370
- 'oscar',
371
- 'edna',
372
- 'ethel',
373
- 'gene',
374
- 'shannon',
375
- 'sheila',
376
- 'dustin',
377
- 'ellen',
378
- 'hilda',
379
- 'ray',
380
- 'marjorie',
381
- 'sylvia',
382
- 'barry',
383
- 'melvin',
384
- 'thelma',
385
- 'cindy',
386
- 'miranda',
387
- 'bernard',
388
- 'carlton',
389
- 'juanita',
390
- 'darrell',
391
- 'erik',
392
- 'jeremiah',
393
- 'nicolas',
394
- 'gordon',
395
- 'violet',
396
- 'mona',
397
- 'glen',
398
- 'willis',
399
- 'harvey',
400
- 'rudolph',
401
- 'preston',
402
- 'cole',
403
- 'june',
404
- 'pauline',
405
- 'leo',
406
- 'earnest',
407
- 'devin',
408
- 'audrey',
409
- 'claire',
410
- 'vivian',
411
- 'goldie',
412
- 'tommy',
413
- 'allen',
414
- 'glenn',
415
- 'wilson',
416
- 'jill',
417
- 'loretta',
418
- 'mabel',
419
- 'marsha',
420
- 'lillie',
421
- 'minnie',
422
- 'essie',
423
- 'madge',
424
- 'viola',
425
- 'nellie',
426
- 'pearl',
427
- 'marvin',
428
- 'mae',
429
- 'levi',
430
- 'lucille',
431
- 'hazel',
432
- 'nathaniel',
433
- 'lydia',
434
- 'bertha',
435
- 'ursula',
436
- 'kay',
437
- 'sue',
438
- 'dean',
439
- 'verna',
440
- 'teri',
441
- 'edith',
442
- 'dan',
443
- 'lewis',
444
- 'harriett',
445
- 'clifford',
446
- 'genevieve',
447
- 'colleen',
448
- 'gilbert',
449
- 'patrice',
450
- 'jared',
451
- 'elaine',
452
- 'maureen',
453
- 'edmund',
454
- 'nina',
455
- 'georgia',
456
- 'garrett',
457
- 'renee',
458
- 'bessie',
459
- 'leslie',
460
- 'max',
461
- 'leon',
462
- 'fannie',
463
- 'lowell',
464
- 'veronica',
465
- 'vanessa',
466
- 'joy',
467
- 'jim',
468
- 'faith',
469
- 'valerie',
470
- 'wanda',
471
- 'steve',
472
- 'naomi',
473
- 'miles',
474
- 'marcia',
475
- 'brent',
476
- 'clinton',
477
- 'jon',
478
- 'marshall',
479
- 'roberta',
480
- 'alexandra',
481
- 'doreen',
482
- 'daisy',
483
- 'della',
484
- 'minerva',
485
- 'cedric',
486
- 'patsy',
487
- 'kerry',
488
- 'lena',
489
- 'gregg',
490
- 'lois',
491
- 'kurt',
492
- 'lorene',
493
- 'susie',
494
- 'nora',
495
- 'lucinda',
496
- 'mathew',
497
- 'flora',
498
- 'rosie',
499
- 'sherman',
500
- 'lance',
501
- 'darcy',
502
- 'mattie',
503
- 'madeline',
504
- 'sylvester',
505
- 'cory',
506
- 'anita',
507
- 'allan',
508
- 'lula',
509
- 'nell',
510
- 'priscilla',
511
- 'kristin',
512
- 'rosemary',
513
- 'roosevelt',
514
- 'geneva',
515
- 'jeannette',
516
- 'bob',
517
- 'esther',
518
- 'michele',
519
- 'forrest',
520
- 'wilbert',
521
- 'cathleen',
522
- 'jaime',
523
- 'dwayne',
524
- 'inez',
525
- 'alberto',
526
- 'lynne',
527
- 'maxine',
528
- 'wilma',
529
- 'taylor',
530
- 'angelina',
531
- 'hope',
532
- 'margie',
533
- 'myrtle',
534
- 'misty',
535
- 'jimmie',
536
- 'eunice',
537
- 'everett',
538
- 'miracle',
539
- 'billie',
540
- 'leland',
541
- 'jackie',
542
- 'kristina',
543
- 'johnnie',
544
- 'isaac',
545
- 'bobbie',
546
- 'tonya',
547
- 'reba',
548
- 'kristine',
549
- 'amelia',
550
- 'cassandra',
551
- 'angie',
552
- 'maude',
553
- 'nichole',
554
- 'marguerite',
555
- 'justine',
556
- 'kelli',
557
- 'mandy',
558
- 'jeri',
559
- 'darla',
560
- 'shelia',
561
- 'jacquelin',
562
- 'cara',
563
- 'kellie',
564
- 'jolene',
565
- 'chelsea',
566
- 'autumn',
567
- 'glenda',
568
- 'lolita',
569
- 'jeanne',
570
- 'sherrie',
571
- 'toni',
572
- 'becky',
573
- 'jennie',
574
- 'jenna',
575
- 'leigh',
576
- 'cristina',
577
- 'blanche',
578
- 'clarissa',
579
- 'betsy',
580
- 'bridget',
581
- 'ginger',
582
- 'faye',
583
- 'candice',
584
- 'jaclyn',
585
- 'krista',
586
- 'marisa',
587
- 'gayle',
588
- 'meredith',
589
- 'angelica',
590
- 'rachael',
591
- 'candy',
592
- 'trisha',
593
- 'sandy',
594
- 'holly',
595
- 'alicia',
596
- 'melinda',
597
- 'geraldine',
598
- 'tara',
599
- 'isabel',
600
- 'adrienne',
601
- 'terra',
602
- 'rubye',
603
- 'antonia',
604
- 'guadalupe',
605
- 'cheri',
606
- 'janelle',
607
- 'constance',
608
- 'robyn',
609
- 'jodi',
610
- 'krystal',
611
- 'rosalie',
612
- 'deanna',
613
- 'debbie',
614
- 'josie',
615
- 'ronda',
616
- 'paulette',
617
- 'belinda',
618
- 'alton',
619
- 'rudy',
620
- 'kelvin',
621
- 'damon',
622
- 'johnathan',
623
- 'cesar',
624
- 'ira',
625
- 'horace',
626
- 'grant',
627
- 'lionel',
628
- 'wilbur',
629
- 'jake',
630
- 'jody',
631
- 'rickey',
632
- 'lester',
633
- 'pablo',
634
- 'neal',
635
- 'mack',
636
- 'orlando',
637
- 'alfonso',
638
- 'ernesto',
639
- 'rex',
640
- 'lynn',
641
- 'matt',
642
- 'lyle',
643
- 'kristopher',
644
- 'hubert',
645
- 'kenny',
646
- 'doug',
647
- 'sammy',
648
- 'homer',
649
- 'wendell',
650
- 'woodrow',
651
- 'felipe',
652
- 'garry',
653
- 'pete',
654
- 'marco',
655
- 'rufus',
656
- 'owen',
657
- 'bryant',
658
- 'abraham',
659
- 'irving',
660
- 'jermaine',
661
- 'julius',
662
- 'marty',
663
- 'alejandro',
664
- 'carmen',
665
- 'carlos',
666
- 'celia',
667
- 'lucas',
668
- 'luiza',
669
- 'diogo',
670
- 'agueda',
671
- 'raphael',
672
- 'elise',
673
- 'frederick',
674
- 'andra',
675
- 'frederik',
676
- 'freja',
677
- 'daan',
678
- 'lotte',
679
- 'eino',
680
- 'helmi',
681
- 'jakob',
682
- 'frida',
683
- 'kostas',
684
- 'eleni',
685
- 'lazzaro',
686
- 'alessia',
687
- 'mart',
688
- 'liis',
689
- 'trinh',
690
- 'thoa',
691
- 'lesya',
692
- 'taras',
693
- 'mikhail',
694
- 'olga',
695
- 'axel',
696
- 'ebba',
697
- 'hemant',
698
- 'priya',
699
- 'aicha',
700
- 'ismail',
701
- 'moshe',
702
- 'inbar',
703
- 'gil',
704
- 'lital',
705
- 'yusuf',
706
- 'elif',
707
- 'dominika',
708
- 'michal',
709
- ] as const;
710
-
711
- export type SpeechifyVoiceId = (typeof SPEECHIFY_VOICES)[number];
package/tsconfig.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.node.json",
3
- "include": ["src/**/*"],
4
- "exclude": ["node_modules", "**/*.test.ts"]
5
- }
package/vitest.config.ts DELETED
@@ -1,8 +0,0 @@
1
- import { defineConfig } from 'vitest/config';
2
-
3
- export default defineConfig({
4
- test: {
5
- globals: true,
6
- include: ['src/**/*.test.ts'],
7
- },
8
- });