@aituber-onair/core 0.10.0 → 0.11.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/README.md CHANGED
@@ -79,8 +79,7 @@ pnpm install @aituber-onair/core
79
79
 
80
80
  ## Basic Usage
81
81
 
82
- For more practical usage examples, please see [Simple AI Chat App with AITuber OnAir Core]
83
- (https://github.com/shinshin86/simple-aichat-app-with-aituber-onair-core).
82
+ For more practical usage examples, please see [Simple AI Chat App with AITuber OnAir Core](https://github.com/shinshin86/simple-aichat-app-with-aituber-onair-core).
84
83
 
85
84
  Below is a simplified example of how to use **AITuber OnAir Core**:
86
85
 
@@ -1083,6 +1082,7 @@ Possible use cases for `chatLogUpdated` include:
1083
1082
  - **NijiVoice**: AI-based speech synthesis service (requires an API key).
1084
1083
  - **AivisSpeech**: Speech synthesis using AI technology.
1085
1084
  - **OpenAI TTS**: Text-to-speech API from OpenAI.
1085
+ - **None**: No voice mode (no audio output).
1086
1086
 
1087
1087
  You can dynamically switch the speech engine via `updateVoiceService`:
1088
1088
 
@@ -0,0 +1,28 @@
1
+ import { VoiceActor, Talk } from '../../../types';
2
+ import { VoiceEngine } from './VoiceEngine';
3
+ /**
4
+ * None (no voice) engine
5
+ * Implementation using Null Object pattern that performs no voice processing
6
+ */
7
+ export declare class NoneEngine implements VoiceEngine {
8
+ /**
9
+ * Get voice data (performs no processing)
10
+ * @param input script
11
+ * @param speaker speaker ID
12
+ * @param apiKey API key (not used)
13
+ * @param voiceActor voice actor information (not used)
14
+ * @returns empty ArrayBuffer
15
+ */
16
+ fetchAudio(input: Talk, speaker: string, apiKey?: string, voiceActor?: VoiceActor): Promise<ArrayBuffer>;
17
+ /**
18
+ * Get test message
19
+ * @param textVoiceText custom text
20
+ * @returns test message
21
+ */
22
+ getTestMessage(textVoiceText?: string): string;
23
+ /**
24
+ * Set custom API endpoint URL (performs no processing)
25
+ * @param apiUrl custom API endpoint URL
26
+ */
27
+ setApiEndpoint?(apiUrl: string): void;
28
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * None (no voice) engine
3
+ * Implementation using Null Object pattern that performs no voice processing
4
+ */
5
+ export class NoneEngine {
6
+ /**
7
+ * Get voice data (performs no processing)
8
+ * @param input script
9
+ * @param speaker speaker ID
10
+ * @param apiKey API key (not used)
11
+ * @param voiceActor voice actor information (not used)
12
+ * @returns empty ArrayBuffer
13
+ */
14
+ async fetchAudio(input, speaker, apiKey, voiceActor) {
15
+ // Return empty ArrayBuffer since no voice is needed
16
+ return new ArrayBuffer(0);
17
+ }
18
+ /**
19
+ * Get test message
20
+ * @param textVoiceText custom text
21
+ * @returns test message
22
+ */
23
+ getTestMessage(textVoiceText) {
24
+ return textVoiceText || 'No voice mode is active';
25
+ }
26
+ /**
27
+ * Set custom API endpoint URL (performs no processing)
28
+ * @param apiUrl custom API endpoint URL
29
+ */
30
+ setApiEndpoint(apiUrl) {
31
+ // No processing needed in no voice mode
32
+ }
33
+ }
34
+ //# sourceMappingURL=NoneEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoneEngine.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/NoneEngine.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,KAAW,EACX,OAAe,EACf,MAAe,EACf,UAAuB;QAEvB,oDAAoD;QACpD,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,aAAsB;QACnC,OAAO,aAAa,IAAI,yBAAyB,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,cAAc,CAAE,MAAc;QAC5B,wCAAwC;IAC1C,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { VoicePeakEngine } from './VoicePeakEngine';
3
3
  import { AivisSpeechEngine } from './AivisSpeechEngine';
4
4
  import { OpenAiEngine } from './OpenAiEngine';
5
5
  import { NijiVoiceEngine } from './NijiVoiceEngine';
6
+ import { NoneEngine } from './NoneEngine';
6
7
  /**
7
8
  * Voice engine factory
8
9
  * Generate appropriate voice engine instances based on voice engine type
@@ -26,6 +27,8 @@ export class VoiceEngineFactory {
26
27
  return new OpenAiEngine();
27
28
  case 'nijivoice':
28
29
  return new NijiVoiceEngine();
30
+ case 'none':
31
+ return new NoneEngine();
29
32
  default:
30
33
  throw new Error(`Unsupported voice engine type: ${engineType}`);
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceEngineFactory.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/VoiceEngineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,UAA2B;QAC1C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,IAAI,cAAc,EAAE,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,aAAa;gBAChB,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"VoiceEngineFactory.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/VoiceEngineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,UAA2B;QAC1C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,IAAI,cAAc,EAAE,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,aAAa;gBAChB,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- export type VoiceEngineType = 'voicevox' | 'voicepeak' | 'openai' | 'nijivoice' | 'aivisSpeech';
1
+ export type VoiceEngineType = 'voicevox' | 'voicepeak' | 'openai' | 'nijivoice' | 'aivisSpeech' | 'none';
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export * from './screenshot';
5
5
  export * from './screenplay';
6
+ export * from './storage';
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './screenshot';
5
5
  export * from './screenplay';
6
+ export * from './storage';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aituber-onair/core",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Core library for AITuber OnAir providing voice synthesis and chat processing",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",