2016-05-09 2 views
1

Est-il possible de fournir directement des données pcm à pocketsphinx au lieu de le convertir d'abord en fichier wav? Si oui alors s'il vous plaît aidez-moi avec le code dans c. PS: L'entrée pcm provient d'un périphérique analogique, comme un microphone interfacé avec arduino qui transmet ensuite les données pcm échantillonnées à une machine Linux.Entrée PCM à pocketsphinx

Répondre

0

Le code est fourni en tutorial et en continuous.c dans les sources en version plus avancée:

ps_start_utt(ps); 
utt_started = FALSE 
while ((k = fread(adbuf, sizeof(int16), 2048, rawfd)) > 0) { 
    ps_process_raw(ps, adbuf, k, FALSE, FALSE); 
    in_speech = ps_get_in_speech(ps); 
    if (in_speech && !utt_started) { 
     utt_started = TRUE; 
    } 
    if (!in_speech && utt_started) { 
     ps_end_utt(ps); 
     hyp = ps_get_hyp(ps, NULL);  
     ps_start_utt(ps); 
     utt_started = FALSE; 
    } 
} 
ps_end_utt(ps); 

L'appel principal est ps_process_raw qui prend un tampon de données.

+0

Merci! Ça a marché. :) – tejasdadhe