Interazione tra programmi

0

Sto scrivendo un programma interattivo in cui accetta l'input vocale dell'utente per un elenco specifico di comandi.

L'elenco dei comandi verrà memorizzato localmente in un grafico e in base all'utilizzo verrà modificato il loro peso.

L'input vocale è preso ed elaborato in testo e quindi viene eseguito da script di bash.

Sto pensando a cosa dovrei usare per interagire (sincronizzare) tra il motore di riconoscimento vocale e poi l'elenco e il programma di bash.

Sto usando C ++ e Bash su un sistema Unix.

Ho pensato a mutex ma il problema è che se l'utente fornisce più input allora dovrò bufferizzarlo e quindi elaborarlo in sequenza e questo renderà il sistema più lento.

Lo script bash viene utilizzato per chiamare i comandi di utilità di sistema richiesti dall'utente. Dovrei usare anche C ++ o Bash?

Sto pensando di memorizzare il grafico in un formato binario. È questo il modo migliore per memorizzare il grafico?

Si prega di suggerire alternative.

    
posta quick- 11.05.2013 - 20:46
fonte

2 risposte

2

Non sembri ancora molto chiaramente il design del tuo sistema. Quindi un consiglio:

  • Rendi il più semplice possibile.
  • Annota diversi scenari di interazione tra l'utente e il tuo programma. Fai attenzione a includere casi in cui l'utente cambia idea nel momento in cui dici un comando e altri scenari quando le cose vanno male.
  • Non procedere fino a quando non avrai una chiara visione delle interazioni con l'utente, casi speciali comuni come "cancella la parola", ecc.
  • Stai lontano dai mutex e da altre cose pelose. (Ti consiglio di stare lontano anche dal C ++, ma probabilmente il tuo motore vocale ha un'interfaccia C ++.)
  • In caso di dubbi sull'accesso simultaneo, utilizzare un database. Fa tutto il blocco per te ed è un software collaudato. Vedi SQLite per la soluzione più semplice.
risposta data 11.05.2013 - 21:18
fonte
0

Spero di capire il problema correttamente, ma una soluzione che ho visto è quella di implementare il programma di ricezione come server locale, ascoltando su una porta specifica (per sicurezza, accetta solo connessioni localhost). Non penso che ci sarebbe molto in termini di prestazioni in ritardo. Questo lascia l'idea che qualcuno possa inviare comandi vocali dallo smartphone (anche se, con ogni probabilità, rimarrà sul computer locale) Il sistema portuale locale era uno dei modi in cui uno dei miei professori universitari aveva diversi studenti che lavoravano su singole parti di un problema utilizzando lingue diverse a loro scelta (e alcune parti potevano essere eseguite su macchine diverse)

    
risposta data 14.05.2013 - 02:12
fonte

Leggi altre domande sui tag