我正在windows 10上运行Matlab2017。
我调用一个python脚本,它在云上运行一些语音识别任务,如下所示:
userAuthCode=1;% authentication code for user account to be run on cloud
cmd = ['C:\Python27\python.exe runASR.py userAuthCode];
system(cmd);
调用上述命令时,python脚本在ASR云引擎上运行输入音频文件,运行时,我可以在Matlab控制台中看到python音频文件的语音识别分数。
我要执行以下操作:
(1) 并行执行多个此类命令。比方说,我有2个输入音频文件(每个文件都有不同的音频段),我希望使用单独的进程并行运行上述命令2次。我能够创建一个代码段,该代码段应该能够做到这一点:
for i=1: 2
userAuthCode=i;
cmd = ['C:\Python27\python.exe runASR.py userAuthCode];
runtime = java.lang.Runtime.getRuntime();
pid(i) = runtime.exec(cmd);
end
for i=1:2
pid(i).waitFor();
% get exit status
rc(i) = pid(i).exitValue();
end
现在,当执行上述代码时,我可以看到data1的ASRE分数,但不能看到data 2的ASRE分数。
变量中的退出状态
钢筋混凝土
是
0,1,
这证实了这一点。
问题是我不知道错误的原因,因为没有打印任何内容
Matlab。如何从java/Matlab中捕获的Python中获取错误消息
变量以便我可以查看?
问题可能是多次调用
并行ASRE(当然,使用不同的用户帐户)可能不会
得到支持,但除非我能看到错误,否则我不会知道。
(2) 当我独立运行一个命令时,正如本文开头所提到的,我能够看到每个音频段的分数消息在Matlab控制台中打印,因为它们是从Python获得的。但是,使用
Java语言lang.Runtime。getRuntime()
以及相关代码,Matlab控制台中不会显示任何消息。有没有办法显示这些消息(我假设显示可能是异步的?)
谢谢
塞迪