@mastra/voice-speechify 0.1.3-alpha.9 → 0.1.4-alpha.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.
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.9",
3
+ "version": "0.1.4-alpha.0",
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.9"
25
+ "@speechify/api-sdk": "^2.4.1",
26
+ "zod": "^3.24.2",
27
+ "@mastra/core": "^0.5.1-alpha.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.9 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 6577ms
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 9652ms
17
- CLI Cleaning output folder
18
- ESM Build start
19
- CJS Build start
20
- CJS dist/index.cjs 10.31 KB
21
- CJS ⚡️ Build success in 515ms
22
- ESM dist/index.js 10.28 KB
23
- ESM ⚡️ Build success in 523ms
package/CHANGELOG.md DELETED
@@ -1,230 +0,0 @@
1
- # @mastra/voice-speechify
2
-
3
- ## 0.1.3-alpha.9
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [e9fbac5]
8
- - Updated dependencies [1e8bcbc]
9
- - Updated dependencies [aeb5e36]
10
- - Updated dependencies [f2301de]
11
- - @mastra/core@0.5.0-alpha.9
12
-
13
- ## 0.1.3-alpha.8
14
-
15
- ### Patch Changes
16
-
17
- - Updated dependencies [506f1d5]
18
- - @mastra/core@0.5.0-alpha.8
19
-
20
- ## 0.1.3-alpha.7
21
-
22
- ### Patch Changes
23
-
24
- - Updated dependencies [ee667a2]
25
- - @mastra/core@0.5.0-alpha.7
26
-
27
- ## 0.1.3-alpha.6
28
-
29
- ### Patch Changes
30
-
31
- - Updated dependencies [f6678e4]
32
- - @mastra/core@0.5.0-alpha.6
33
-
34
- ## 0.1.3-alpha.5
35
-
36
- ### Patch Changes
37
-
38
- - Updated dependencies [22643eb]
39
- - Updated dependencies [6feb23f]
40
- - Updated dependencies [f2d6727]
41
- - Updated dependencies [301e4ee]
42
- - Updated dependencies [dfbe4e9]
43
- - Updated dependencies [9e81f35]
44
- - Updated dependencies [caefaa2]
45
- - Updated dependencies [c151ae6]
46
- - Updated dependencies [52e0418]
47
- - Updated dependencies [03236ec]
48
- - Updated dependencies [3764e71]
49
- - Updated dependencies [df982db]
50
- - Updated dependencies [0461849]
51
- - Updated dependencies [2259379]
52
- - Updated dependencies [358f069]
53
- - @mastra/core@0.5.0-alpha.5
54
-
55
- ## 0.1.3-alpha.4
56
-
57
- ### Patch Changes
58
-
59
- - Updated dependencies [d79aedf]
60
- - @mastra/core@0.5.0-alpha.4
61
-
62
- ## 0.1.3-alpha.3
63
-
64
- ### Patch Changes
65
-
66
- - Updated dependencies [3d0e290]
67
- - @mastra/core@0.5.0-alpha.3
68
-
69
- ## 0.1.3-alpha.2
70
-
71
- ### Patch Changes
72
-
73
- - Updated dependencies [02ffb7b]
74
- - @mastra/core@0.5.0-alpha.2
75
-
76
- ## 0.1.3-alpha.1
77
-
78
- ### Patch Changes
79
-
80
- - Updated dependencies [dab255b]
81
- - @mastra/core@0.5.0-alpha.1
82
-
83
- ## 0.1.3-alpha.0
84
-
85
- ### Patch Changes
86
-
87
- - Updated dependencies [59df7b6]
88
- - Updated dependencies [29f3a82]
89
- - Updated dependencies [59df7b6]
90
- - Updated dependencies [c139344]
91
- - @mastra/core@0.5.0-alpha.0
92
-
93
- ## 0.1.2
94
-
95
- ### Patch Changes
96
-
97
- - Updated dependencies [1da20e7]
98
- - @mastra/core@0.4.4
99
-
100
- ## 0.1.2-alpha.0
101
-
102
- ### Patch Changes
103
-
104
- - Updated dependencies [1da20e7]
105
- - @mastra/core@0.4.4-alpha.0
106
-
107
- ## 0.1.1
108
-
109
- ### Patch Changes
110
-
111
- - bb4f447: Add support for commonjs
112
- - Updated dependencies [0d185b1]
113
- - Updated dependencies [ed55f1d]
114
- - Updated dependencies [06aa827]
115
- - Updated dependencies [0fd78ac]
116
- - Updated dependencies [2512a93]
117
- - Updated dependencies [e62de74]
118
- - Updated dependencies [0d25b75]
119
- - Updated dependencies [fd14a3f]
120
- - Updated dependencies [8d13b14]
121
- - Updated dependencies [3f369a2]
122
- - Updated dependencies [3ee4831]
123
- - Updated dependencies [4d4e1e1]
124
- - Updated dependencies [bb4f447]
125
- - Updated dependencies [108793c]
126
- - Updated dependencies [5f28f44]
127
- - Updated dependencies [dabecf4]
128
- - @mastra/core@0.4.3
129
-
130
- ## 0.1.1-alpha.4
131
-
132
- ### Patch Changes
133
-
134
- - Updated dependencies [dabecf4]
135
- - @mastra/core@0.4.3-alpha.4
136
-
137
- ## 0.1.1-alpha.3
138
-
139
- ### Patch Changes
140
-
141
- - bb4f447: Add support for commonjs
142
- - Updated dependencies [0fd78ac]
143
- - Updated dependencies [0d25b75]
144
- - Updated dependencies [fd14a3f]
145
- - Updated dependencies [3f369a2]
146
- - Updated dependencies [4d4e1e1]
147
- - Updated dependencies [bb4f447]
148
- - @mastra/core@0.4.3-alpha.3
149
-
150
- ## 0.1.1-alpha.2
151
-
152
- ### Patch Changes
153
-
154
- - Updated dependencies [2512a93]
155
- - Updated dependencies [e62de74]
156
- - @mastra/core@0.4.3-alpha.2
157
-
158
- ## 0.1.1-alpha.1
159
-
160
- ### Patch Changes
161
-
162
- - Updated dependencies [0d185b1]
163
- - Updated dependencies [ed55f1d]
164
- - Updated dependencies [8d13b14]
165
- - Updated dependencies [3ee4831]
166
- - Updated dependencies [108793c]
167
- - Updated dependencies [5f28f44]
168
- - @mastra/core@0.4.3-alpha.1
169
-
170
- ## 0.1.1-alpha.0
171
-
172
- ### Patch Changes
173
-
174
- - Updated dependencies [06aa827]
175
- - @mastra/core@0.4.3-alpha.0
176
-
177
- ## 0.1.0
178
-
179
- ### Patch Changes
180
-
181
- - f477df7: deprecate @mastra/speech-speechify for @mastra/voice-speechify
182
- - Updated dependencies [7fceae1]
183
- - Updated dependencies [8d94c3e]
184
- - Updated dependencies [99dcdb5]
185
- - Updated dependencies [6cb63e0]
186
- - Updated dependencies [f626fbb]
187
- - Updated dependencies [e752340]
188
- - Updated dependencies [eb91535]
189
- - @mastra/core@0.4.2
190
-
191
- ## 0.1.0-alpha.4
192
-
193
- ### Patch Changes
194
-
195
- - Updated dependencies [8d94c3e]
196
- - Updated dependencies [99dcdb5]
197
- - Updated dependencies [e752340]
198
- - Updated dependencies [eb91535]
199
- - @mastra/core@0.4.2-alpha.2
200
-
201
- ## 0.1.0-alpha.3
202
-
203
- ### Patch Changes
204
-
205
- - Updated dependencies [6cb63e0]
206
- - @mastra/core@0.4.2-alpha.1
207
-
208
- ## 0.1.0-alpha.2
209
-
210
- ### Patch Changes
211
-
212
- - f477df7: deprecate @mastra/speech-speechify for @mastra/voice-speechify
213
-
214
- ## 0.1.0 (2024-XX-XX)
215
-
216
- This package replaces the deprecated @mastra/speech-speechify package. All functionality has been migrated to this new package with a more consistent naming scheme.
217
-
218
- ### Changes from @mastra/speech-speechify
219
-
220
- - Package renamed from @mastra/speech-speechify to @mastra/voice-speechify
221
- - API changes:
222
- - `SpeechifyTTS` class renamed to `SpeechifyVoice`
223
- - `generate()` and `stream()` methods combined into `speak()`
224
- - `voices()` method renamed to `getSpeakers()`
225
- - Constructor configuration simplified
226
- - Added support for text stream input
227
- - All core functionality remains the same
228
- - Import paths should be updated from '@mastra/speech-speechify' to '@mastra/voice-speechify'
229
-
230
- 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
- });