`

(惨痛教训) java runtime().exec() 提示 No such file or directory

 
阅读更多

 

 最近花了三天解决了一个不是问题的问题,花三整整三天,可谓真是太惨痛了。

 

 近期做呼叫中心的语音合成(TTS),使用了百度语音平台进行语音合成。百度语音合成出来的语音是MP3格

 

 式。这里共遇到几个问题:

 

(1)百度语音平台导出来的语音格式是 mp3, 强制转成 wav 时,正常播放没有问题。但是通过 sox 做转换时

         提示 RIFF header not found  等错误。

 

(2)如果以 mp3 的方式导出,执行 sox xxx.mp3 -r 8000 -c 1 xxx.vox 时,提示 sox 不支持 mp3。通过编译的方式后,解决了 sox 支持 mp3 的问题。

 

最终定下来的解决方案是:百度语音导出成 mp3 ,然后调用 sox 的方式转换成 vox 格式,可以在电话系统中直接播放。

 

定下方案后,发现在 java 后台执行,执行系统转换命令:

Process p = Runtime.getRuntime().exec("sox xxx.mp3 -r 8000 -c 1 xxx.vox"); 

 

 

 

提示:Cannot run program "sox": java.io.IOException: error=2, No such file or directory

 

但是在控制台直接执行 sox xxx.mp3 -r 8000 -c 1 xxx.vox 时,挺是没有问题的。

 

开始以为是 权限问题,在转换前将语音文件的权限增加到最大,但是还是提示相同的错误。

 

经过各种测试,还是没有办法解决,

 

No such file or directory ,难道是文件不存在? 

 

后来决定不直接执行 sox ,而是通过执行 复制操作,确定是否文件真的存在。即是

 

Process p = Runtime.getRuntime().exec(cp xxxx.mp3 xxx_bak.mp3);

 

谁知道写错了,写成了 copy xxx.mp3 xxx_bak.mp3 居然提示同样的错误,后来改正后,可以正常执行。

 

看来 No such file or directory 这个提示,并非是要复制或是要转换的文件不存在,看来是操作命令的问题。

 

即是 sox  这个操作命令不存在。

 

最后,通过 /usr/bin/sox xxx.mp3 -r 8000 -c 1 xxx.vox ,终于能正常执行。

 

经过三天才真正定位到错误原因。

 

 

这次解决问题完全是因为写错了  copy 才定位到的原因,真是无心插柳。

分享到:
评论
1 楼 hbxfyxw 2017-04-08  
 

相关推荐

    惨痛=道理作文.doc

    惨痛=道理作文.doc

    WIN7下最好用的无损分区工具

    WIN7下分区有四种方法: 1.用WIN7自带的磁盘管理工具,比较安全,缺点是不能调节主分区和逻辑分区的大小,最...这点我已经有惨痛教训. 4.这也是我推荐的,最好的一款软件,WIN7下完成.中文.棒极了.支持国产.

    node_惨痛教训

    记录初次实践的两个bug点 1) Error: Cannot find module ‘XXX’ 2) Access denied for user ‘’@‘localhost’ (using password: YES) 本着学习的兴趣, 使用IDEA 下了node插件 , 搭建了node项目, 可是项目在启动...

    我是谁?我在干嘛?回想被MySQL UTF8编码坑的惨痛教训总结

    最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑的惨痛教训,记录一下,警示自己。 曾几何时,每次建库都选utf8,觉得自己比那些用乱七八糟编码的人不知道酷到哪里去了。直到好多年前的某次课程设计做...

    乔戈里 java面经

    然后他问我的项目亮点是啥,我当时一下愣住了,扯了一些有的没的,都是失败的惨痛的教训,大家参考参考就好,不一定就一定要照着我学,非要知耻而后勇,咋提前准备好也是不错的。经过这次惨痛的教训以后,我就开始有...

    angluar_记惨痛的教训

    1) 模块没有任何异常,也没有错误,但是内容显示不出来 2) 统一引入css 3) 引入第三方模块 4) 注入服务 ...1) 模块没有任何异常,也没有错误,但是内容显示不出来 第一此创建项目之后 , 模仿着项目中已有的 app.xxxxxx 系列...

    USB2.0布线关键---经验教训

    最近做了一个PCB,走线宽度为3.5mil,间距为8mil,板厚1.6,TOP到GND 之间为0.3mm,因此USB阻抗超大...一个惨痛的教训,让我载抄了信号完整性分析的一段:深刻体会,钱的教训的深刻的!!下面吧自己的经验教训总结下。

    Java微信网页端,公众号支付Demo

    微信支付处处是坑,真的是惨痛的经历,所以赶紧分享给大家,让大家顺利过坑,有问题欢迎留言。谢谢(缺少部分包,请根据其他人评论酌情下载)

    360C盘搬家.zip

    可以把C盘系统盘上的内容搬到其他盘上,免得系统崩溃导致个人数据丢失,有过这种惨痛教训的我十年前就不再C盘存任何个人资料了。建议还是搬一下好

    Delphi源码备份

    经常写程序的朋友一定都知道备份的重要性吧,一次忘记备份可能会让你欲哭无泪,在这方面,在这方面我也曾经有过惨痛教训,于是就写了 这个小工具。 它是专门为了备份Delphi的源代码而设计的,可以定时自动备份,...

    初中语文文摘历史“杯酒释兵权”背后的惨痛代价

    初中语文文摘历史“杯酒释兵权”背后的惨痛代价

    曙光服务器打造湖南数字地震观测平台

    地震破坏的惨痛教训让人们越来越清醒地认识到防震减灾工作的重要性,利用科学的手段,通过对地震进行及时的监测预报,以及对建设工程进行抗震设防和地震危险性评估,为建筑工程提供科学、合理的抗震设防依据,就能够...

    编程从业五年的十四条编程经验

    排列不分先后:  1....人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。  3. 尽可能简化状态,尽可能局部本地化。适用至上。  4. 短小可组合的方法是你的好朋友。

    编程从业五年的十四条经验

    排列不分先后:  1....人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。  3. 尽可能简化状态,尽可能局部本地化。适用至上。  4. 短小可组合的方法是你的好朋友。

    区块链安全Top 10 2019.pdf

    近几年,区块链技术的发展非常迅猛,安全形势也越来越严峻,仅安全事件导致的直接经济损失就高达 35 亿美元,很多公司甚至因此倒闭,给行业带来了巨额的经济损失和惨痛的教训。基于此,OWASP 中国成立专门研究小组,...

    JPA学习资料 JPA学习资料

    JPA(Java Persistence API)作为 Java EE 5.0 平台标准的 ORM 规范,将得到所有 Java EE 服务器的支持。Sun 这次吸取了之前 EJB 规范惨痛失败的经历,在充分吸收现 有 ORM 框架的基础上,得到了一个易于使用、伸缩性...

    住院管理系统.zip

    需要说明一下,由于第一次独自完成,有很多不妥当的地方,可以看着修改完善,主要是对任务书没有认真分析,很惨痛的教训!

    java版五子棋源码-TFT2:基于图搜索构建云顶之弈S2最强阵容

    java版五子棋源码 本文希望读者玩过云顶之弈,不懂编程的可以直接拉到最下面去看结论,懂编程的希望你了解递归、分治、图、堆这些基本概念,并掌握Python或者Go语言。 代码已公开在github上: ,转载请注明来源。 ...

    网络安全教育教案.doc

    同学们,现在网瘾危 害触目惊心的案例成了各类媒体频频关注的热点,很多青少年为了上网付出了惨痛的代 价 1.请同学们在小组内进行交流讨论,并请小组长记录下来。 2.学生发言。 3.老师补充并总结。 网瘾有哪些危害呢...

Global site tag (gtag.js) - Google Analytics