@@ -39,6 +39,10 @@ function freeConfig(config, Module) {
3939 freeConfig ( config . fireRedAsr , Module )
4040 }
4141
42+ if ( 'dolphin' in config ) {
43+ freeConfig ( config . dolphin , Module )
44+ }
45+
4246 if ( 'moonshine' in config ) {
4347 freeConfig ( config . moonshine , Module )
4448 }
@@ -562,6 +566,23 @@ function initSherpaOnnxOfflineNemoEncDecCtcModelConfig(config, Module) {
562566 }
563567}
564568
569+ function initSherpaOnnxOfflineDolphinModelConfig ( config , Module ) {
570+ const n = Module . lengthBytesUTF8 ( config . model || '' ) + 1 ;
571+
572+ const buffer = Module . _malloc ( n ) ;
573+
574+ const len = 1 * 4 ; // 1 pointer
575+ const ptr = Module . _malloc ( len ) ;
576+
577+ Module . stringToUTF8 ( config . model || '' , buffer , n ) ;
578+
579+ Module . setValue ( ptr , buffer , 'i8*' ) ;
580+
581+ return {
582+ buffer : buffer , ptr : ptr , len : len ,
583+ }
584+ }
585+
565586function initSherpaOnnxOfflineWhisperModelConfig ( config , Module ) {
566587 const encoderLen = Module . lengthBytesUTF8 ( config . encoder || '' ) + 1 ;
567588 const decoderLen = Module . lengthBytesUTF8 ( config . decoder || '' ) + 1 ;
@@ -769,6 +790,12 @@ function initSherpaOnnxOfflineModelConfig(config, Module) {
769790 } ;
770791 }
771792
793+ if ( ! ( 'dolphin' in config ) ) {
794+ config . dolphin = {
795+ model : '' ,
796+ } ;
797+ }
798+
772799 if ( ! ( 'whisper' in config ) ) {
773800 config . whisper = {
774801 encoder : '' ,
@@ -832,8 +859,12 @@ function initSherpaOnnxOfflineModelConfig(config, Module) {
832859 const fireRedAsr =
833860 initSherpaOnnxOfflineFireRedAsrModelConfig ( config . fireRedAsr , Module ) ;
834861
862+ const dolphin =
863+ initSherpaOnnxOfflineDolphinModelConfig ( config . dolphin , Module ) ;
864+
835865 const len = transducer . len + paraformer . len + nemoCtc . len + whisper . len +
836- tdnn . len + 8 * 4 + senseVoice . len + moonshine . len + fireRedAsr . len ;
866+ tdnn . len + 8 * 4 + senseVoice . len + moonshine . len + fireRedAsr . len +
867+ dolphin . len ;
837868
838869 const ptr = Module . _malloc ( len ) ;
839870
@@ -932,10 +963,14 @@ function initSherpaOnnxOfflineModelConfig(config, Module) {
932963 Module . _CopyHeap ( fireRedAsr . ptr , fireRedAsr . len , ptr + offset ) ;
933964 offset += fireRedAsr . len ;
934965
966+ Module . _CopyHeap ( dolphin . ptr , dolphin . len , ptr + offset ) ;
967+ offset += dolphin . len ;
968+
935969 return {
936970 buffer : buffer , ptr : ptr , len : len , transducer : transducer ,
937971 paraformer : paraformer , nemoCtc : nemoCtc , whisper : whisper , tdnn : tdnn ,
938- senseVoice : senseVoice , moonshine : moonshine , fireRedAsr : fireRedAsr
972+ senseVoice : senseVoice , moonshine : moonshine , fireRedAsr : fireRedAsr ,
973+ dolphin : dolphin
939974 }
940975}
941976
0 commit comments