@mastra/voice-playai 0.10.6-alpha.0 → 0.10.7-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
@@ -232,3 +232,5 @@ var PlayAIVoice = class extends voice.MastraVoice {
232
232
 
233
233
  exports.PLAYAI_VOICES = PLAYAI_VOICES;
234
234
  exports.PlayAIVoice = PlayAIVoice;
235
+ //# sourceMappingURL=index.cjs.map
236
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["MastraVoice","stream","PassThrough"],"mappings":"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","file":"index.cjs","sourcesContent":["import { PassThrough } from 'stream';\n\nimport { MastraVoice } from '@mastra/core/voice';\n\ninterface PlayAIVoiceInfo {\n name: string;\n accent: string;\n gender: 'M' | 'F';\n age: 'Young' | 'Middle' | 'Old';\n style: 'Conversational' | 'Narrative';\n id: string;\n}\n\nexport const PLAYAI_VOICES: PlayAIVoiceInfo[] = [\n {\n name: 'Angelo',\n accent: 'US',\n gender: 'M',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/baf1ef41-36b6-428c-9bdf-50ba54682bd8/original/manifest.json',\n },\n {\n name: 'Arsenio',\n accent: 'US African American',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/65977f5e-a22a-4b36-861b-ecede19bdd65/original/manifest.json',\n },\n {\n name: 'Cillian',\n accent: 'Irish',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/1591b954-8760-41a9-bc58-9176a68c5726/original/manifest.json',\n },\n {\n name: 'Timo',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/677a4ae3-252f-476e-85ce-eeed68e85951/original/manifest.json',\n },\n {\n name: 'Dexter',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/b27bc13e-996f-4841-b584-4d35801aea98/original/manifest.json',\n },\n {\n name: 'Miles',\n accent: 'US African American',\n gender: 'M',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/29dd9a52-bd32-4a6e-bff1-bbb98dcc286a/original/manifest.json',\n },\n {\n name: 'Briggs',\n accent: 'US Southern (Oklahoma)',\n gender: 'M',\n age: 'Old',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/71cdb799-1e03-41c6-8a05-f7cd55134b0b/original/manifest.json',\n },\n {\n name: 'Deedee',\n accent: 'US African American',\n gender: 'F',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/e040bd1b-f190-4bdb-83f0-75ef85b18f84/original/manifest.json',\n },\n {\n name: 'Nia',\n accent: 'US',\n gender: 'F',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/831bd330-85c6-4333-b2b4-10c476ea3491/original/manifest.json',\n },\n {\n name: 'Inara',\n accent: 'US African American',\n gender: 'F',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/adb83b67-8d75-48ff-ad4d-a0840d231ef1/original/manifest.json',\n },\n {\n name: 'Constanza',\n accent: 'US Latin American',\n gender: 'F',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/b0aca4d7-1738-4848-a80b-307ac44a7298/original/manifest.json',\n },\n {\n name: 'Gideon',\n accent: 'British',\n gender: 'M',\n age: 'Old',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/5a3a1168-7793-4b2c-8f90-aff2b5232131/original/manifest.json',\n },\n {\n name: 'Casper',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/1bbc6986-fadf-4bd8-98aa-b86fed0476e9/original/manifest.json',\n },\n {\n name: 'Mitch',\n accent: 'Australian',\n gender: 'M',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/c14e50f2-c5e3-47d1-8c45-fa4b67803d19/original/manifest.json',\n },\n {\n name: 'Ava',\n accent: 'Australian',\n gender: 'F',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/50381567-ff7b-46d2-bfdc-a9584a85e08d/original/manifest.json',\n },\n];\n\ninterface PlayAIConfig {\n name?: 'PlayDialog' | 'Play3.0-mini';\n apiKey?: string;\n userId?: string;\n}\n\nexport class PlayAIVoice extends MastraVoice {\n private baseUrl = 'https://api.play.ai/api/v1';\n private userId: string;\n\n constructor({ speechModel, speaker }: { speechModel?: PlayAIConfig; speaker?: string } = {}) {\n super({\n speechModel: {\n name: speechModel?.name ?? 'PlayDialog',\n apiKey: speechModel?.apiKey ?? process.env.PLAYAI_API_KEY,\n },\n speaker: speaker ?? PLAYAI_VOICES[0]?.id,\n });\n const userId = speechModel?.userId ?? process.env.PLAYAI_USER_ID;\n if (!userId) {\n throw new Error('userId is required');\n }\n\n this.userId = userId;\n }\n\n private async makeRequest(endpoint: string, payload?: any, method: 'GET' | 'POST' = 'POST') {\n const headers = new Headers({\n Authorization: `Bearer ${this.speechModel?.apiKey}`,\n 'Content-Type': 'application/json',\n 'X-USER-ID': this.userId,\n });\n\n const response = await fetch(`${this.baseUrl}${endpoint}`, {\n method,\n headers,\n body: payload ? JSON.stringify(payload) : undefined,\n });\n\n if (!response.ok) {\n const error = (await response.json()) as { message: string };\n\n throw new Error(`PlayAI API Error: ${error.message || response.statusText}`);\n }\n\n return response;\n }\n\n private async streamToString(stream: NodeJS.ReadableStream): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of stream) {\n if (typeof chunk === 'string') {\n chunks.push(Buffer.from(chunk));\n } else {\n chunks.push(chunk);\n }\n }\n return Buffer.concat(chunks).toString('utf-8');\n }\n\n async speak(input: string | NodeJS.ReadableStream, options?: { speaker?: string }): Promise<NodeJS.ReadableStream> {\n const text = typeof input === 'string' ? input : await this.streamToString(input);\n\n return this.traced(async () => {\n const payload = {\n text,\n voice: options?.speaker || this.speaker,\n model: this.speechModel?.name,\n };\n\n const response = await this.makeRequest('/tts/stream', payload);\n if (!response.body) {\n throw new Error('No response body received');\n }\n\n // Create a PassThrough stream for the audio\n const stream = new PassThrough();\n\n // Process the stream\n const reader = response.body.getReader();\n void (async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n stream.end();\n break;\n }\n stream.write(value);\n }\n } catch (error) {\n stream.destroy(error as Error);\n }\n })();\n\n return stream;\n }, 'voice.playai.speak')();\n }\n\n /**\n * Checks if listening capabilities are enabled.\n *\n * @returns {Promise<{ enabled: boolean }>}\n */\n async getListener() {\n return { enabled: false };\n }\n\n async listen(\n _input: NodeJS.ReadableStream,\n _options?: Record<string, unknown>,\n ): Promise<string | NodeJS.ReadableStream> {\n throw new Error('PlayAI does not support speech recognition');\n }\n\n async getSpeakers() {\n return this.traced(\n () =>\n Promise.resolve(\n PLAYAI_VOICES.map(voice => ({\n voiceId: voice.id,\n name: voice.name,\n accent: voice.accent,\n gender: voice.gender,\n age: voice.age,\n style: voice.style,\n })),\n ),\n 'voice.playai.voices',\n )();\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,47 @@
1
- export { PLAYAI_VOICES } from './_tsup-dts-rollup.js';
2
- export { PlayAIVoice } from './_tsup-dts-rollup.js';
1
+ import { MastraVoice } from '@mastra/core/voice';
2
+ interface PlayAIVoiceInfo {
3
+ name: string;
4
+ accent: string;
5
+ gender: 'M' | 'F';
6
+ age: 'Young' | 'Middle' | 'Old';
7
+ style: 'Conversational' | 'Narrative';
8
+ id: string;
9
+ }
10
+ export declare const PLAYAI_VOICES: PlayAIVoiceInfo[];
11
+ interface PlayAIConfig {
12
+ name?: 'PlayDialog' | 'Play3.0-mini';
13
+ apiKey?: string;
14
+ userId?: string;
15
+ }
16
+ export declare class PlayAIVoice extends MastraVoice {
17
+ private baseUrl;
18
+ private userId;
19
+ constructor({ speechModel, speaker }?: {
20
+ speechModel?: PlayAIConfig;
21
+ speaker?: string;
22
+ });
23
+ private makeRequest;
24
+ private streamToString;
25
+ speak(input: string | NodeJS.ReadableStream, options?: {
26
+ speaker?: string;
27
+ }): Promise<NodeJS.ReadableStream>;
28
+ /**
29
+ * Checks if listening capabilities are enabled.
30
+ *
31
+ * @returns {Promise<{ enabled: boolean }>}
32
+ */
33
+ getListener(): Promise<{
34
+ enabled: boolean;
35
+ }>;
36
+ listen(_input: NodeJS.ReadableStream, _options?: Record<string, unknown>): Promise<string | NodeJS.ReadableStream>;
37
+ getSpeakers(): Promise<{
38
+ voiceId: string;
39
+ name: string;
40
+ accent: string;
41
+ gender: "M" | "F";
42
+ age: "Young" | "Middle" | "Old";
43
+ style: "Conversational" | "Narrative";
44
+ }[]>;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAClB,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,aAAa,EAAE,eAAe,EAyH1C,CAAC;AAEF,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,MAAM,CAAS;gBAEX,EAAE,WAAW,EAAE,OAAO,EAAE,GAAE;QAAE,WAAW,CAAC,EAAE,YAAY,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;YAgB7E,WAAW;YAsBX,cAAc;IAYtB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IAuClH;;;;OAIG;IACG,WAAW;;;IAIX,MAAM,CACV,MAAM,EAAE,MAAM,CAAC,cAAc,EAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAIpC,WAAW;;;;;;;;CAgBlB"}
package/dist/index.js CHANGED
@@ -229,3 +229,5 @@ var PlayAIVoice = class extends MastraVoice {
229
229
  };
230
230
 
231
231
  export { PLAYAI_VOICES, PlayAIVoice };
232
+ //# sourceMappingURL=index.js.map
233
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { PassThrough } from 'stream';\n\nimport { MastraVoice } from '@mastra/core/voice';\n\ninterface PlayAIVoiceInfo {\n name: string;\n accent: string;\n gender: 'M' | 'F';\n age: 'Young' | 'Middle' | 'Old';\n style: 'Conversational' | 'Narrative';\n id: string;\n}\n\nexport const PLAYAI_VOICES: PlayAIVoiceInfo[] = [\n {\n name: 'Angelo',\n accent: 'US',\n gender: 'M',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/baf1ef41-36b6-428c-9bdf-50ba54682bd8/original/manifest.json',\n },\n {\n name: 'Arsenio',\n accent: 'US African American',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/65977f5e-a22a-4b36-861b-ecede19bdd65/original/manifest.json',\n },\n {\n name: 'Cillian',\n accent: 'Irish',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/1591b954-8760-41a9-bc58-9176a68c5726/original/manifest.json',\n },\n {\n name: 'Timo',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/677a4ae3-252f-476e-85ce-eeed68e85951/original/manifest.json',\n },\n {\n name: 'Dexter',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/b27bc13e-996f-4841-b584-4d35801aea98/original/manifest.json',\n },\n {\n name: 'Miles',\n accent: 'US African American',\n gender: 'M',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/29dd9a52-bd32-4a6e-bff1-bbb98dcc286a/original/manifest.json',\n },\n {\n name: 'Briggs',\n accent: 'US Southern (Oklahoma)',\n gender: 'M',\n age: 'Old',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/71cdb799-1e03-41c6-8a05-f7cd55134b0b/original/manifest.json',\n },\n {\n name: 'Deedee',\n accent: 'US African American',\n gender: 'F',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/e040bd1b-f190-4bdb-83f0-75ef85b18f84/original/manifest.json',\n },\n {\n name: 'Nia',\n accent: 'US',\n gender: 'F',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/831bd330-85c6-4333-b2b4-10c476ea3491/original/manifest.json',\n },\n {\n name: 'Inara',\n accent: 'US African American',\n gender: 'F',\n age: 'Middle',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/adb83b67-8d75-48ff-ad4d-a0840d231ef1/original/manifest.json',\n },\n {\n name: 'Constanza',\n accent: 'US Latin American',\n gender: 'F',\n age: 'Young',\n style: 'Conversational',\n id: 's3://voice-cloning-zero-shot/b0aca4d7-1738-4848-a80b-307ac44a7298/original/manifest.json',\n },\n {\n name: 'Gideon',\n accent: 'British',\n gender: 'M',\n age: 'Old',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/5a3a1168-7793-4b2c-8f90-aff2b5232131/original/manifest.json',\n },\n {\n name: 'Casper',\n accent: 'US',\n gender: 'M',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/1bbc6986-fadf-4bd8-98aa-b86fed0476e9/original/manifest.json',\n },\n {\n name: 'Mitch',\n accent: 'Australian',\n gender: 'M',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/c14e50f2-c5e3-47d1-8c45-fa4b67803d19/original/manifest.json',\n },\n {\n name: 'Ava',\n accent: 'Australian',\n gender: 'F',\n age: 'Middle',\n style: 'Narrative',\n id: 's3://voice-cloning-zero-shot/50381567-ff7b-46d2-bfdc-a9584a85e08d/original/manifest.json',\n },\n];\n\ninterface PlayAIConfig {\n name?: 'PlayDialog' | 'Play3.0-mini';\n apiKey?: string;\n userId?: string;\n}\n\nexport class PlayAIVoice extends MastraVoice {\n private baseUrl = 'https://api.play.ai/api/v1';\n private userId: string;\n\n constructor({ speechModel, speaker }: { speechModel?: PlayAIConfig; speaker?: string } = {}) {\n super({\n speechModel: {\n name: speechModel?.name ?? 'PlayDialog',\n apiKey: speechModel?.apiKey ?? process.env.PLAYAI_API_KEY,\n },\n speaker: speaker ?? PLAYAI_VOICES[0]?.id,\n });\n const userId = speechModel?.userId ?? process.env.PLAYAI_USER_ID;\n if (!userId) {\n throw new Error('userId is required');\n }\n\n this.userId = userId;\n }\n\n private async makeRequest(endpoint: string, payload?: any, method: 'GET' | 'POST' = 'POST') {\n const headers = new Headers({\n Authorization: `Bearer ${this.speechModel?.apiKey}`,\n 'Content-Type': 'application/json',\n 'X-USER-ID': this.userId,\n });\n\n const response = await fetch(`${this.baseUrl}${endpoint}`, {\n method,\n headers,\n body: payload ? JSON.stringify(payload) : undefined,\n });\n\n if (!response.ok) {\n const error = (await response.json()) as { message: string };\n\n throw new Error(`PlayAI API Error: ${error.message || response.statusText}`);\n }\n\n return response;\n }\n\n private async streamToString(stream: NodeJS.ReadableStream): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of stream) {\n if (typeof chunk === 'string') {\n chunks.push(Buffer.from(chunk));\n } else {\n chunks.push(chunk);\n }\n }\n return Buffer.concat(chunks).toString('utf-8');\n }\n\n async speak(input: string | NodeJS.ReadableStream, options?: { speaker?: string }): Promise<NodeJS.ReadableStream> {\n const text = typeof input === 'string' ? input : await this.streamToString(input);\n\n return this.traced(async () => {\n const payload = {\n text,\n voice: options?.speaker || this.speaker,\n model: this.speechModel?.name,\n };\n\n const response = await this.makeRequest('/tts/stream', payload);\n if (!response.body) {\n throw new Error('No response body received');\n }\n\n // Create a PassThrough stream for the audio\n const stream = new PassThrough();\n\n // Process the stream\n const reader = response.body.getReader();\n void (async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n stream.end();\n break;\n }\n stream.write(value);\n }\n } catch (error) {\n stream.destroy(error as Error);\n }\n })();\n\n return stream;\n }, 'voice.playai.speak')();\n }\n\n /**\n * Checks if listening capabilities are enabled.\n *\n * @returns {Promise<{ enabled: boolean }>}\n */\n async getListener() {\n return { enabled: false };\n }\n\n async listen(\n _input: NodeJS.ReadableStream,\n _options?: Record<string, unknown>,\n ): Promise<string | NodeJS.ReadableStream> {\n throw new Error('PlayAI does not support speech recognition');\n }\n\n async getSpeakers() {\n return this.traced(\n () =>\n Promise.resolve(\n PLAYAI_VOICES.map(voice => ({\n voiceId: voice.id,\n name: voice.name,\n accent: voice.accent,\n gender: voice.gender,\n age: voice.age,\n style: voice.style,\n })),\n ),\n 'voice.playai.voices',\n )();\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/voice-playai",
3
- "version": "0.10.6-alpha.0",
3
+ "version": "0.10.7-alpha.0",
4
4
  "description": "Mastra PlayAI voice integration",
5
5
  "type": "module",
6
6
  "files": [
@@ -15,7 +15,7 @@
15
15
  "default": "./dist/index.js"
16
16
  },
17
17
  "require": {
18
- "types": "./dist/index.d.cts",
18
+ "types": "./dist/index.d.ts",
19
19
  "default": "./dist/index.cjs"
20
20
  }
21
21
  },
@@ -32,15 +32,16 @@
32
32
  "tsup": "^8.5.0",
33
33
  "typescript": "^5.8.3",
34
34
  "vitest": "^3.2.4",
35
- "@internal/lint": "0.0.23",
36
- "@mastra/core": "0.12.0-alpha.5"
35
+ "@mastra/core": "0.13.0-alpha.2",
36
+ "@internal/types-builder": "0.0.1",
37
+ "@internal/lint": "0.0.26"
37
38
  },
38
39
  "peerDependencies": {
39
- "@mastra/core": ">=0.10.7-0 <0.13.0-0"
40
+ "@mastra/core": ">=0.10.7-0 <0.14.0-0"
40
41
  },
41
42
  "scripts": {
42
- "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
43
- "build:watch": "pnpm build --watch",
43
+ "build": "tsup --silent --config tsup.config.ts",
44
+ "build:watch": "tsup --watch --silent --config tsup.config.ts",
44
45
  "test": "vitest run",
45
46
  "lint": "eslint ."
46
47
  }
@@ -1,51 +0,0 @@
1
- import { MastraVoice } from '@mastra/core/voice';
2
-
3
- export declare const PLAYAI_VOICES: PlayAIVoiceInfo[];
4
-
5
- declare interface PlayAIConfig {
6
- name?: 'PlayDialog' | 'Play3.0-mini';
7
- apiKey?: string;
8
- userId?: string;
9
- }
10
-
11
- export declare class PlayAIVoice extends MastraVoice {
12
- private baseUrl;
13
- private userId;
14
- constructor({ speechModel, speaker }?: {
15
- speechModel?: PlayAIConfig;
16
- speaker?: string;
17
- });
18
- private makeRequest;
19
- private streamToString;
20
- speak(input: string | NodeJS.ReadableStream, options?: {
21
- speaker?: string;
22
- }): Promise<NodeJS.ReadableStream>;
23
- /**
24
- * Checks if listening capabilities are enabled.
25
- *
26
- * @returns {Promise<{ enabled: boolean }>}
27
- */
28
- getListener(): Promise<{
29
- enabled: boolean;
30
- }>;
31
- listen(_input: NodeJS.ReadableStream, _options?: Record<string, unknown>): Promise<string | NodeJS.ReadableStream>;
32
- getSpeakers(): Promise<{
33
- voiceId: string;
34
- name: string;
35
- accent: string;
36
- gender: "M" | "F";
37
- age: "Young" | "Middle" | "Old";
38
- style: "Conversational" | "Narrative";
39
- }[]>;
40
- }
41
-
42
- declare interface PlayAIVoiceInfo {
43
- name: string;
44
- accent: string;
45
- gender: 'M' | 'F';
46
- age: 'Young' | 'Middle' | 'Old';
47
- style: 'Conversational' | 'Narrative';
48
- id: string;
49
- }
50
-
51
- export { }
@@ -1,51 +0,0 @@
1
- import { MastraVoice } from '@mastra/core/voice';
2
-
3
- export declare const PLAYAI_VOICES: PlayAIVoiceInfo[];
4
-
5
- declare interface PlayAIConfig {
6
- name?: 'PlayDialog' | 'Play3.0-mini';
7
- apiKey?: string;
8
- userId?: string;
9
- }
10
-
11
- export declare class PlayAIVoice extends MastraVoice {
12
- private baseUrl;
13
- private userId;
14
- constructor({ speechModel, speaker }?: {
15
- speechModel?: PlayAIConfig;
16
- speaker?: string;
17
- });
18
- private makeRequest;
19
- private streamToString;
20
- speak(input: string | NodeJS.ReadableStream, options?: {
21
- speaker?: string;
22
- }): Promise<NodeJS.ReadableStream>;
23
- /**
24
- * Checks if listening capabilities are enabled.
25
- *
26
- * @returns {Promise<{ enabled: boolean }>}
27
- */
28
- getListener(): Promise<{
29
- enabled: boolean;
30
- }>;
31
- listen(_input: NodeJS.ReadableStream, _options?: Record<string, unknown>): Promise<string | NodeJS.ReadableStream>;
32
- getSpeakers(): Promise<{
33
- voiceId: string;
34
- name: string;
35
- accent: string;
36
- gender: "M" | "F";
37
- age: "Young" | "Middle" | "Old";
38
- style: "Conversational" | "Narrative";
39
- }[]>;
40
- }
41
-
42
- declare interface PlayAIVoiceInfo {
43
- name: string;
44
- accent: string;
45
- gender: 'M' | 'F';
46
- age: 'Young' | 'Middle' | 'Old';
47
- style: 'Conversational' | 'Narrative';
48
- id: string;
49
- }
50
-
51
- export { }
package/dist/index.d.cts DELETED
@@ -1,2 +0,0 @@
1
- export { PLAYAI_VOICES } from './_tsup-dts-rollup.cjs';
2
- export { PlayAIVoice } from './_tsup-dts-rollup.cjs';