feat: g2kana_tone

This commit is contained in:
Masato Kikuchi
2025-03-27 13:53:27 +09:00
parent 07637f587d
commit dd5c536f39
3 changed files with 11 additions and 8 deletions

View File

@@ -196,6 +196,11 @@ impl JTalkProcess {
Ok((phones, tones, new_word2ph))
}
pub fn g2kana_tone(&self) -> Result<Vec<(String, i32)>> {
let (phones, tones, _) = self.g2p()?;
Ok(phone_tone_to_kana(phones, tones))
}
fn distribute_phone(n_phone: i32, n_word: i32) -> Vec<i32> {
let mut phones_per_word = vec![0; n_word as usize];
for _ in 0..n_phone {

View File

@@ -10,13 +10,12 @@ use tokenizers::Tokenizer;
pub fn preprocess_parse_text(
text: &str,
jtalk: &jtalk::JTalk,
) -> Result<(Vec<String>, Vec<i32>, Vec<i32>, String, JTalkProcess)> {
) -> Result<(String, JTalkProcess)> {
let text = jtalk.num2word(text)?;
let normalized_text = norm::normalize_text(&text);
let process = jtalk.process_text(&normalized_text)?;
let (phones, tones, word2ph) = process.g2p()?;
Ok((phones, tones, word2ph, normalized_text, process))
Ok((normalized_text, process))
}
/// Parse text and return the input for synthesize
@@ -35,8 +34,8 @@ pub async fn parse_text(
Box<dyn std::future::Future<Output = Result<ndarray::Array2<f32>>>>,
>,
) -> Result<(Array2<f32>, Array1<i64>, Array1<i64>, Array1<i64>)> {
let (phones, tones, mut word2ph, normalized_text, process) =
preprocess_parse_text(text, jtalk)?;
let (normalized_text, process) = preprocess_parse_text(text, jtalk)?;
let (phones, tones, mut word2ph) = process.g2p()?;
let (phones, tones, lang_ids) = nlp::cleaned_text_to_sequence(phones, tones);
let phones = utils::intersperse(&phones, 0);

View File

@@ -13,9 +13,8 @@ struct RequestCreateAudioQuery {
}
async fn create_audio_query(Query(request): Query<RequestCreateAudioQuery>) -> AppResult<()> {
let (phones, tones, _, normalized_text, process) =
preprocess_parse_text(&request.text, &JTalk::new()?)?;
println!("{:?}", phones);
let (normalized_text, process) = preprocess_parse_text(&request.text, &JTalk::new()?)?;
let kana_tone_list = process.g2kana_tone()?;
Ok(())
}