Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions harmony-os/SherpaOnnxHar/sherpa_onnx/Index.ets
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ export { Samples,
HomophoneReplacerConfig,
OfflineCanaryModelConfig,
OfflineDolphinModelConfig,
OfflineFireRedAsrCtcModelConfig,
OfflineFireRedAsrModelConfig,
OfflineFunASRNanoModelConfig,
OfflineMedAsrCtcModelConfig,
OfflineOmnilingualAsrCtcModelConfig,
OfflineTransducerModelConfig,
OfflineParaformerModelConfig,
OfflineNemoEncDecCtcModelConfig,
Expand Down Expand Up @@ -41,12 +46,17 @@ export { OnlineStream,
export { OfflineTtsKittenModelConfig,
OfflineTtsKokoroModelConfig,
OfflineTtsMatchaModelConfig,
OfflineTtsPocketModelConfig,
OfflineTtsSupertonicModelConfig,
OfflineTtsVitsModelConfig,
OfflineTtsZipvoiceModelConfig,
OfflineTtsModelConfig,
OfflineTtsConfig,
OfflineTts,
TtsOutput,
TtsGenerationConfig,
TtsInput,
TtsInputWithConfig,
} from './src/main/ets/components/NonStreamingTts';

export { SpeakerEmbeddingExtractorConfig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ export type TtsOutput = {
};

export const offlineTtsGenerate: (handle: object, input: object) => TtsOutput;
export const offlineTtsGenerateWithConfig: (handle: object, input: object) => TtsOutput;
export const offlineTtsGenerateAsync: (handle: object, input: object) => Promise<TtsOutput>;
export const offlineTtsGenerateAsyncWithConfig: (handle: object, input: object) => Promise<TtsOutput>;

export const createSpeakerEmbeddingExtractor: (config: object, mgr?: object) => object;
export const speakerEmbeddingExtractorDim: (handle: object) => number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,30 @@ export class OfflineDolphinModelConfig {
public model: string = '';
}

export class OfflineOmnilingualAsrCtcModelConfig {
public model: string = '';
}

export class OfflineMedAsrCtcModelConfig {
public model: string = '';
}

export class OfflineFunASRNanoModelConfig {
public encoderAdaptor: string = '';
public llm: string = '';
public embedding: string = '';
public tokenizer: string = '';
public systemPrompt: string = '';
public userPrompt: string = '';
public maxNewTokens: number = 0;
public temperature: number = 0;
public topP: number = 0;
Comment on lines +75 to +76

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The default values for temperature and topP are set to 0. For language models, temperature typically controls the randomness of predictions (a value of 0 usually means deterministic output), and topP is a nucleus sampling parameter (a value of 0 might disable it or lead to unexpected behavior). It's generally recommended to use small positive values for temperature (e.g., 0.7-1.0) and values between 0 and 1 for topP (e.g., 0.8-0.95) to allow for more natural and diverse text generation. Please consider adjusting these defaults to more appropriate values for typical LLM usage.

public seed: number = 0;
public language: string = '';
public itn: number = 0;
public hotwords: string = '';
}

export class OfflineZipformerCtcModelConfig {
public model: string = '';
}
Expand All @@ -64,12 +88,23 @@ export class OfflineWenetCtcModelConfig {
public model: string = '';
}

export class OfflineFireRedAsrModelConfig {
public encoder: string = '';
public decoder: string = '';
}

export class OfflineFireRedAsrCtcModelConfig {
public model: string = '';
}

export class OfflineWhisperModelConfig {
public encoder: string = '';
public decoder: string = '';
public language: string = '';
public task: string = 'transcribe';
public tailPaddings: number = -1;
public enableTokenTimestamps: boolean = false;
public enableSegmentTimestamps: boolean = false;
}

export class OfflineCanaryModelConfig {
Expand All @@ -95,6 +130,7 @@ export class OfflineMoonshineModelConfig {
public encoder: string = '';
public uncachedDecoder: string = '';
public cachedDecoder: string = '';
public mergedDecoder: string = '';
}

export class OfflineModelConfig {
Expand All @@ -113,10 +149,15 @@ export class OfflineModelConfig {
public telespeechCtc: string = '';
public senseVoice: OfflineSenseVoiceModelConfig = new OfflineSenseVoiceModelConfig();
public moonshine: OfflineMoonshineModelConfig = new OfflineMoonshineModelConfig();
public fireRedAsr: OfflineFireRedAsrModelConfig = new OfflineFireRedAsrModelConfig();
public dolphin: OfflineDolphinModelConfig = new OfflineDolphinModelConfig();
public zipformerCtc: OfflineZipformerCtcModelConfig = new OfflineZipformerCtcModelConfig();
public canary: OfflineCanaryModelConfig = new OfflineCanaryModelConfig();
public wenetCtc: OfflineWenetCtcModelConfig = new OfflineWenetCtcModelConfig();
public omnilingual: OfflineOmnilingualAsrCtcModelConfig = new OfflineOmnilingualAsrCtcModelConfig();
public medasr: OfflineMedAsrCtcModelConfig = new OfflineMedAsrCtcModelConfig();
public funasrNano: OfflineFunASRNanoModelConfig = new OfflineFunASRNanoModelConfig();
public fireRedAsrCtc: OfflineFireRedAsrCtcModelConfig = new OfflineFireRedAsrCtcModelConfig();
}

export class OfflineLMConfig {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ import {
getOfflineTtsNumSpeakers,
getOfflineTtsSampleRate,
offlineTtsGenerate,
offlineTtsGenerateAsyncWithConfig,
offlineTtsGenerateAsync,
offlineTtsGenerateWithConfig,
} from 'libsherpa_onnx.so';

export class OfflineTtsVitsModelConfig {
Expand Down Expand Up @@ -47,11 +49,48 @@ export class OfflineTtsKittenModelConfig {
public lengthScale: number = 1.0;
}

export class OfflineTtsZipvoiceModelConfig {
public tokens: string = '';
public encoder: string = '';
public decoder: string = '';
public vocoder: string = '';
public dataDir: string = '';
public lexicon: string = '';
public featScale: number = 0.1;
public tShift: number = 0.5;
public targetRms: number = 0.1;
public guidanceScale: number = 1.0;
}

export class OfflineTtsPocketModelConfig {
public lmFlow: string = '';
public lmMain: string = '';
public encoder: string = '';
public decoder: string = '';
public textConditioner: string = '';
public vocabJson: string = '';
public tokenScoresJson: string = '';
public voiceEmbeddingCacheCapacity: number = 50;
}

export class OfflineTtsSupertonicModelConfig {
public durationPredictor: string = '';
public textEncoder: string = '';
public vectorEstimator: string = '';
public vocoder: string = '';
public ttsJson: string = '';
public unicodeIndexer: string = '';
public voiceStyle: string = '';
}

export class OfflineTtsModelConfig {
public vits: OfflineTtsVitsModelConfig = new OfflineTtsVitsModelConfig();
public matcha: OfflineTtsMatchaModelConfig = new OfflineTtsMatchaModelConfig();
public kokoro: OfflineTtsKokoroModelConfig = new OfflineTtsKokoroModelConfig();
public kitten: OfflineTtsKittenModelConfig = new OfflineTtsKittenModelConfig();
public zipvoice: OfflineTtsZipvoiceModelConfig = new OfflineTtsZipvoiceModelConfig();
public pocket: OfflineTtsPocketModelConfig = new OfflineTtsPocketModelConfig();
public supertonic: OfflineTtsSupertonicModelConfig = new OfflineTtsSupertonicModelConfig();
public numThreads: number = 1;
public debug: boolean = false;
public provider: string = 'cpu';
Expand All @@ -75,10 +114,29 @@ interface TtsCallbackData {
progress: number;
}

export class TtsGenerationConfig {
public silenceScale: number = 0.2;
public speed: number = 1.0;
public sid: number = 0;
public referenceAudio?: Float32Array;
public referenceSampleRate: number = 0;
public referenceText: string = '';
public numSteps: number = 5;
public extra: object = {};
}

export class TtsInput {
public text: string = '';
public sid: number = 0;
public speed: number = 1.0;
public enableExternalBuffer: boolean = true;
public callback?: (data: TtsCallbackData) => number;
}

export class TtsInputWithConfig {
public text: string = '';
public generationConfig: TtsGenerationConfig = new TtsGenerationConfig();
public enableExternalBuffer: boolean = true;
Comment on lines +132 to +139
public callback?: (data: TtsCallbackData) => number;
}

Expand Down Expand Up @@ -109,4 +167,12 @@ export class OfflineTts {
generateAsync(input: TtsInput): Promise<TtsOutput> {
return offlineTtsGenerateAsync(this.handle, input);
}

generateWithConfig(input: TtsInputWithConfig): TtsOutput {
return offlineTtsGenerateWithConfig(this.handle, input) as TtsOutput;
}

generateAsyncWithConfig(input: TtsInputWithConfig): Promise<TtsOutput> {
return offlineTtsGenerateAsyncWithConfig(this.handle, input);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ export class OnlineModelConfig {
public modelType: string = '';
public modelingUnit: string = "cjkchar";
public bpeVocab: string = '';
public tokensBuf: string = '';
public tokensBufSize: number = 0;
}

export class OnlineCtcFstDecoderConfig {
Expand All @@ -89,6 +91,8 @@ export class OnlineRecognizerConfig {
public ruleFsts: string = '';
public ruleFars: string = '';
public blankPenalty: number = 0;
public hotwordsBuf: string = '';
public hotwordsBufSize: number = 0;
public hr: HomophoneReplacerConfig = new HomophoneReplacerConfig();
Comment on lines +94 to 96
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,16 @@ export class VadConfig {
public sampleRate: number;
public debug: boolean;
public numThreads: number;
public provider: string = 'cpu';

public constructor(sileroVad: SileroVadConfig, tenVad: TenVadConfig, sampleRate: number, debug: boolean, numThreads: number) {
public constructor(sileroVad: SileroVadConfig, tenVad: TenVadConfig, sampleRate: number, debug: boolean,
numThreads: number, provider: string = 'cpu') {
this.sileroVad = sileroVad;
this.tenVad = tenVad;
this.sampleRate = sampleRate;
this.debug = debug;
this.numThreads = numThreads;
this.provider = provider;
}
Comment on lines 61 to 74
}

Expand Down
Loading