首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python和Kaldi:管道断裂错误

Python和Kaldi:管道断裂错误
EN

Stack Overflow用户
提问于 2017-01-27 19:44:04
回答 1查看 1K关注 0票数 0

设置如下:我正在使用Kaldi工具。它们在特定形式的bash脚本中被调用。这些bash脚本由用python编写的包装程序调用,该包装程序将任务提交给Sun Grid引擎。

我要执行的命令如下

代码语言:javascript
运行
复制
feat-to-dim 'ark:copy-feats scp:train.scp ark:- |' -

在命令行中执行此操作,将生成正确的结果“40”和警告

代码语言:javascript
运行
复制
WARNING (feat-to-dim[5.0.23-f7b2f]:Close():kaldi-io.cc:501) Pipe copy-feats scp:train.scp ark:- | had nonzero return status 13

但是,如果我用以下方式对此进行包装:

代码语言:javascript
运行
复制
python -c "import os; os.system(\"feat-to-dim 'ark:copy-feats scp:train.scp ark:- |' -\")"

程序copy-feats失败,错误如下:

代码语言:javascript
运行
复制
ERROR (copy-feats[5.0.23-f7b2f]:Write():kaldi-matrix.cc:1240) Failed to write matrix to stream

在各种堆栈跟踪和以下错误之后,还将另外打印以下警告:

代码语言:javascript
运行
复制
WARNING (feat-to-dim[5.0.23-f7b2f]:Close():kaldi-io.cc:501) Pipe copy-feats scp:train.scp ark:- | had nonzero return status 134

这就是我所发现的:feat-to-dim提前关闭管道,而copy-feats试图继续编写输出。由于这是不可能的,copy-feats将被终止。13可能表示管道损坏的错误。

对于Python来说,这是一个严重的问题,为什么它会将它变成一个错误并终止。但是在这种情况下,产生错误的不是Python,而是copy-feats。因此,像python中的try/catchtrapping the pipe这样的东西在这种情况下似乎没有任何成功。

此外,以下行工作非常正常,没有任何警告或错误:

代码语言:javascript
运行
复制
python -c "import os; os.system(\"copy-feats scp:train.scp ark:-\")" > cp
python -c "import os; os.system(\"feat-to-dim ark:cp -\")"

下面的行生成简单的错误消息cat: write error: Broken pipe和退出状态256:

代码语言:javascript
运行
复制
python -c "import os; os.system(\"feat-to-dim ark:'cat cp |' -\")"

你在这里还有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-27 21:18:54

13可能表示管道断裂的错误。

13是一个答案(功能维度),您可以使用它作为结果,您可以忽略其他所有类似的错误

代码语言:javascript
运行
复制
with open(os.devnull, "w") as devnull:
    subprocess.call("feat-to-dim 'ark:copy-feats scp:feats.scp ark:- |' -", shell=True, stderr=devnull)

这就是我所发现的:先期关闭管道,复制功能尝试继续写入输出。

这是一个kaldi设计,它试图只读取第一个特性,然后简单地转储其余的功能,但是由于管道并不意味着终止编写器子特性,所以它必须以如此糟糕的方式退出。一个选项是读取完整的子输出,但速度要慢得多。

你也许可以打开卡尔迪的窃听器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41901841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档