Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

problemas con System Exec VI

¡Resuelto!
Ir a solución

Buenas a todos!

Estoy tratando de crear una interfaz en la cual se interactue con el cmd o la linea de comandos.

Quiero ejecutar un .exe junto a otros archivos .txt, pero no lo consigo. el comando que utilizo para ejecutar mi programa directamente en la linea de comandos es la suguiente:

 

C:\Users\Usuario>software\bin.win32\HVite.exe -H HTK-Windows\makro.txt -H HTK-Windows\hmmdefs.txt -C HTK-Windows\config.txt -w HTK-Windows\wdnet.txt -p 0.0 -s 5.0 HTK-Windows\dict.txt HTK-Windows\phones.list.txt

 

Este comando funciona perfectamente en mi cmd, pero al tratar de ejecutarlo mediante LabView usando System Exec VI me da errores y no consigo que funcione. He leido las ayudas, los ejemplos, distintos problemas con el System Exec VI pero no doy con la solucion.

He probado de muchas maneras, por ejemplo poniendo esto en el command line:

 

cmd  /k  C:\Users\Usuario>software\bin.win32\HVite.exe -H HTK-Windows\makro.txt -H HTK-Windows\hmmdefs.txt -C HTK-Windows\config.txt -w HTK-Windows\wdnet.txt -p 0.0 -s 5.0 HTK-Windows\dict.txt HTK-Windows\phones.list.txt

pero me dice que el sistema no encuentra la ruta especificada, y asi en todas las pruebas que he realizado.

Os agradeceria mucho si alguien me informase de como y donde tengo que poner el comando que he puesto arriba para asi poder ejecutarlo en LabView, si hay que ponerlo todo en el command line o tambien usar el standard input.

Ayudadme por favor!

Gracias y perdonad las molestias.

kibkib

0 kudos
Mensaje 1 de 29
3.940 Vistas

cmd  /k  C:\Users\Usuario>software\bin.win32\HVite.exe -H HTK-Windows\makro.txt -H HTK-Windows\hmmdefs.txt -C HTK-Windows\config.txt -w HTK-Windows\wdnet.txt -p 0.0 -s 5.0 HTK-Windows\dict.txt HTK-Windows\phones.list.txt

Debes poner cmd /c C:\Users\...

 

 

Os agradeceria mucho si alguien me informase de como y donde tengo que poner el comando que he puesto arriba para asi poder ejecutarlo en LabView, si hay que ponerlo todo en el command line o tambien usar el standard input.

 


Solamente tines que ponerlo en el "command line".

 

Saludos

0 kudos
Mensaje 2 de 29
3.900 Vistas

Buenas!

He seguido tus consejos, y creo que he avanzado algo; al realizar los cambios que me has dicho, seguia con el mismo error, pero he cambiado cmd /c C:\Users\Usuario>software por cmd /c C:\Users\Usuario\software y luego he añadido el path completo a cada archivo, este es el comando que he puesto en el "command line":

 

cmd /c C:\Users\Usuario\software\bin.win32\HVite.exe -H C:\Users\Usuario\HTK-Windows\makro.txt -H C:\Users\Usuario\HTK-Windows\hmmdefs.txt -C C:\Users\Usuario\HTK-Windows\config.txt -w C:\Users\Usuario\HTK-Windows\wdnet.txt -p 0.0 -s 5.0 C:\Users\Usuario\HTK-Windows\dict.txt C:\Users\Usuario\HTK-Windows\phones.list.txt

Con este comando no me da errores, y se abre la ventana de comandos y permanece abierta, pero no veo que se este ejecutando nada.

Lo que yo quiero es que al ejecutar ese comando, se abra la ventana de comandos y se vea lo que hace la ventana de comandos, ya que, lo que hace el programa en si al ejecutarse ese comando es iniciar un reconocedor del habla, y lo que a mi me interesa es obtener en labview lo que reconoce en la linea de comandos.

Gracias por tu respuesta anterior! Espero que se entienda lo que quiero conseguir, para que asi alguien me pueda ayudar.

Muchas gracias!

0 kudos
Mensaje 3 de 29
3.896 Vistas

Tu programa se llama HVite.exe ? No entiendo del todo la ruta que le pasas al "cmd".

 


 y lo que a mi me interesa es obtener en labview lo que reconoce en la linea de comandos.


Estas usando el standard output de System Exec.VI ?

0 kudos
Mensaje 4 de 29
3.893 Vistas

si, HVite.exe es un ejecutable el cual ejecuto con la informacion que le paso a traves de los .txt.

Te explico detenidamente la ruta:

Al abrir la linea de comandos, por defecto se inicia asi:

C:\Users\Usuario>

y despues yo escribo mi comando el cual es el siguiente:

software\bin.win32\HVite.exe -H HTK-Windows\makro.txt -H HTK-Windows\hmmdefs.txt -C HTK-Windows\config.txt -w HTK-Windows\wdnet.txt -p 0.0 -s 5.0 HTK-Windows\dict.txt HTK-Windows\phones.list.txt

Ejecutando eso en la linea de comandos, funciona y me pide que hable y al hablar el imprime en la linea de comandos lo que he dicho. (Los -H, -C, -w... son opciones que da el ejecutable HVite.exe).

 

He consegido que me funcione mas o menos, ya que es cierto que me aparece lo reconocido por la linea de comandos en el string conectado al "standard output". Pero el problema es que al ejecutarlo se abre el cmd, pero no aparece nada, entonces yo hablo un rato para que el reconocedor trabaje, pero sigo sin ver nada y solo al cerrar el cmd puedo ver lo que a reconocido en el string del "standard output". Lo que yo quiero es ir viendo lo que me reconoce al momento y sin cerrar el cmd. Es eso posible?

 

Muchas gracias por tus respuestas y tu interes me ha servido mucho.

kibkib

0 kudos
Mensaje 5 de 29
3.889 Vistas

Pero el problema es que al ejecutarlo se abre el cmd, pero no aparece nada, entonces yo hablo un rato para que el reconocedor trabaje, pero sigo sin ver nada y solo al cerrar el cmd puedo ver lo que a reconocido en el string del "standard output".

 


Creo que para que puedas ver lo que se va reconociendo en el cmd, hay que poner Wait Until Completion = False, pero entonces, cuando acabes con el programa, no vas a ver nada en el standard output.

Si Wait Until Completion = True (que es como está por defecto), no ves lo que pasa en "cmd" pero lo ves cuando terminas de ejecutar el programa HVite.exe en "standard output".

 


Lo que yo quiero es ir viendo lo que me reconoce al momento y sin cerrar el cmd. Es eso posible?


Creo que poniendo Wait Until Completion = False obtienes lo que pides, pero no lo vas a tener disponible en el "standard output" al finalizar de ejectuar el programa HVite.exe.

0 kudos
Mensaje 6 de 29
3.881 Vistas

 Estas en lo cierto, gracias por tu ayuda!

Ahora lo que quiero conseguir es que segun la palabra que reconozca Labview haga una cosa u otra. No se si esto se puede hacer con un case y poner la palabra a reconocer en las opciones de case y asi asignar a cada palabra una accion. Que te parece? alguna idea de como podria hacerlo? podria sacar desde el standard output la palabra que ha reconocido? 

0 kudos
Mensaje 7 de 29
3.875 Vistas

Podrías enseñarme como te sale el texto al recibirlo por el "standard output" ? Simplemente las palabras o como? Haz un ejemplo y haz una captura de pantalla para verlo mejor. 

0 kudos
Mensaje 8 de 29
3.871 Vistas

Te mando una imajen con el wait until completion False y otra con el True para que veas la diferencia. Con la opcion true hasta cerrar el cmd no sale nada en el standard output y al cerrarlo aparece todo el texto.

0 kudos
Mensaje 9 de 29
3.865 Vistas

Ahora lo que quiero conseguir es que segun la palabra que reconozca Labview haga una cosa u otra. No se si esto se puede hacer con un case y poner la palabra a reconocer en las opciones de case y asi asignar a cada palabra una accion. Que te parece? alguna idea de como podria hacerlo? podria sacar desde el standard output la palabra que ha reconocido? 


Según como has visto, para tener el texto en "standard output" tienes que acabar la ejecución de HVite.exe , esto da lugar a 2 casos que tienes que elegir según lo que quieras hacer:

CASO A:

Ejecutar HVite.exe, decir 1 sola palabra, acabar el programa y luego ejecutar en función de lo que se ha dicho un caso u otro.

CASO B:

Ejecutar HVite.exe, decir muchas palabras (tal como has enseñado en el ejemplo) y luego ir ejecutando casos en el orden en que se han dicho las palabras.

 

¿ Qué caso es de aplicación con lo que quieres hacer ?

0 kudos
Mensaje 10 de 29
3.853 Vistas