summaryrefslogtreecommitdiff
path: root/bin/cli/src/inference.rs
blob: f78f381fb2ea31c7a8057d5577563ebb96d92714 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use async_trait::async_trait;
use db::types::GraphemeString;
use db::{
    inference::InferenceError,
    types::{InferenceService, PhonemeString},
};
use deepphonemizer::Phonemizer;

#[derive(Debug)]
pub struct DeepPhonemizerInference(pub Phonemizer);

#[async_trait]
impl InferenceService<InferenceError> for DeepPhonemizerInference {
    async fn fetch(&self, prefix: GraphemeString) -> Result<PhonemeString, InferenceError> {
        let pronemized = self
            .0
            .phonemize(prefix.0, "fr_fr".to_string(), "", true, 1).unwrap();

        return Ok(PhonemeString(
            PhonemeString(format!("{:?}", pronemized)).to_string(),
        ));
    }
}