add moss-tts-nano
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use aha::models::{
|
||||
deepseek_ocr::config::DeepseekOCRConfig, hunyuan_ocr::config::HunYuanVLConfig, lfm2::config::Lfm2Config, lfm2vl::config::{Lfm2ProcessorConfig, Lfm2VLConfig}, minicpm4::config::MiniCPM4Config, moss::config::{MossAudioTokenizerConfig, MossTTSConfig}, paddleocr_vl::config::PaddleOCRVLConfig, qwen2_5vl::config::Qwen2_5VLConfig, qwen3vl::config::Qwen3VLConfig, voxcpm::config::VoxCPMConfig
|
||||
deepseek_ocr::config::DeepseekOCRConfig, hunyuan_ocr::config::HunYuanVLConfig, lfm2::config::Lfm2Config, lfm2vl::config::{Lfm2ProcessorConfig, Lfm2VLConfig}, minicpm4::config::MiniCPM4Config, moss_audio_tokenizer_nano::config::MossAudioTokenizerConfig, moss_tts_nano::config::MossTTSConfig, paddleocr_vl::config::PaddleOCRVLConfig, qwen2_5vl::config::Qwen2_5VLConfig, qwen3vl::config::Qwen3VLConfig, voxcpm::config::VoxCPMConfig
|
||||
};
|
||||
use anyhow::Result;
|
||||
|
||||
@@ -128,4 +128,4 @@ fn moss_tts_config() -> Result<()> {
|
||||
let config: MossTTSConfig = serde_json::from_slice(&std::fs::read(config_path)?)?;
|
||||
println!("{:?}", config);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use aha::models::moss::generate::MossTTSGenerate;
|
||||
use aha::models::moss_tts_nano::generate::MossTTSGenerate;
|
||||
use anyhow::Result;
|
||||
|
||||
#[test]
|
||||
@@ -10,11 +10,13 @@ fn moss_tts() -> Result<()> {
|
||||
let audio_tokenizer_path = format!("{}/openmoss/MOSS-Audio-Tokenizer-Nano/", save_dir);
|
||||
let mut model = MossTTSGenerate::init(&tts_path, &audio_tokenizer_path, None, None)?;
|
||||
let _ = model.generate(
|
||||
"您好啊,吃饭了吗,吃的啥啊中午",
|
||||
Some("file://./assets/audio/jiangjiang.wav"),
|
||||
Some("哈喽大家好,我是蒋蒋"),
|
||||
Some(aha::models::moss::tts_nano::MossTTSMode::Continuation),
|
||||
"你在干吗啊",
|
||||
// None,
|
||||
Some("file://./assets/audio/jiangjiang.wav"),
|
||||
None,
|
||||
// Some("哈喽大家好,我是蒋蒋"),
|
||||
// Some(aha::models::moss_tts_nano::model::MossTTSMode::Continuation),
|
||||
None,
|
||||
)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ use aha::{
|
||||
GenerateModel,
|
||||
voxcpm::{generate::VoxCPMGenerate, tokenizer::SingleChineseTokenizer},
|
||||
},
|
||||
utils::audio_utils::{extract_and_save_audio_from_response, save_wav},
|
||||
utils::audio_utils::{extract_and_save_audio_from_response, save_wav_mono},
|
||||
};
|
||||
use anyhow::{Ok, Result};
|
||||
|
||||
@@ -54,7 +54,7 @@ fn voxcpm_use_message_generate() -> Result<()> {
|
||||
}
|
||||
let i_duration = i_start.elapsed();
|
||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||
// save_wav(&generate, "voxcpm.wav", 16000)?;
|
||||
// save_wav_mono(&generate, "voxcpm.wav", 16000)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ fn voxcpm_generate() -> Result<()> {
|
||||
|
||||
let i_duration = i_start.elapsed();
|
||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||
save_wav(&generate, "voxcpm.wav", 16000)?;
|
||||
save_wav_mono(&generate, "voxcpm.wav", 16000)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ use aha::{
|
||||
GenerateModel,
|
||||
voxcpm::{generate::VoxCPMGenerate, tokenizer::SingleChineseTokenizer},
|
||||
},
|
||||
utils::audio_utils::{extract_and_save_audio_from_response, save_wav},
|
||||
utils::audio_utils::{extract_and_save_audio_from_response, save_wav_mono},
|
||||
};
|
||||
use anyhow::{Ok, Result};
|
||||
|
||||
@@ -106,7 +106,7 @@ fn voxcpm1_5_generate() -> Result<()> {
|
||||
|
||||
let i_duration = i_start.elapsed();
|
||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||
save_wav(&generate, "voxcpm1_5.wav", 44100)?;
|
||||
save_wav_mono(&generate, "voxcpm1_5.wav", 44100)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ fn voxcpm_refact_generate() -> Result<()> {
|
||||
std::thread::sleep(std::time::Duration::from_secs(2));
|
||||
let i_duration = i_start.elapsed();
|
||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||
save_wav(
|
||||
save_wav_mono(
|
||||
&generate,
|
||||
"voxcpm.wav",
|
||||
voxcpm_generate.sample_rate() as u32,
|
||||
|
||||
@@ -444,11 +444,14 @@ fn moss_audio_tokenizer_nano_weight() -> Result<()> {
|
||||
// cargo test -F cuda --test weight_test moss_audio_tokenizer_nano_weight -r -- --nocapture
|
||||
let save_dir =
|
||||
aha::utils::get_default_save_dir().ok_or(anyhow::anyhow!("Failed to get save dir"))?;
|
||||
let model_path = format!("{}/openmoss/MOSS-Audio-Tokenizer-Nano/model-00001-of-00001.safetensors", save_dir);
|
||||
let model_path = format!(
|
||||
"{}/openmoss/MOSS-Audio-Tokenizer-Nano/model-00001-of-00001.safetensors",
|
||||
save_dir
|
||||
);
|
||||
let device = get_device(None);
|
||||
let weights = safetensors::load(model_path, &device)?;
|
||||
for (key, tensor) in weights.iter() {
|
||||
println!("=== {} === {:?}", key, tensor);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user