Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写shell脚本以生成wave文件_Shell_Ros_Festival - Fatal编程技术网

编写shell脚本以生成wave文件

编写shell脚本以生成wave文件,shell,ros,festival,Shell,Ros,Festival,我正在考虑编写一个脚本,将.txt文件的内容转换为.wav文件 当前执行的命令是: text2wave textFileName.txt -o wavFileName.wav 所以,非常简单的命令。它查看.txt文件中的内容,并将其全部转换为.wav文件。但我想做的是,只有一个包含许多行的.txt文件,其中每一行都将转换为一个.wav文件。例如:第0行、第1行、第2行。。。要转换为0.wav、1.wav、2.wav。。。etc 关于如何实现这一点有什么想法吗?我也乐于接受不同的方法。#/bin

我正在考虑编写一个脚本,将.txt文件的内容转换为.wav文件

当前执行的命令是:

text2wave textFileName.txt -o wavFileName.wav
所以,非常简单的命令。它查看.txt文件中的内容,并将其全部转换为.wav文件。但我想做的是,只有一个包含许多行的.txt文件,其中每一行都将转换为一个.wav文件。例如:
第0行、第1行、第2行。。。要转换为0.wav、1.wav、2.wav。。。etc

关于如何实现这一点有什么想法吗?我也乐于接受不同的方法。

#/bin/bash
#!/bin/bash

i=1
filename=/path/to/text/file

while read -r line
do
    echo $line > somefile.txt
    text2wave somefile.txt -o $i.wav
    i=$((i+1))

done < "$filename"
i=1 filename=/path/to/text/file 而read-r行 做 echo$line>somefile.txt text2wave somefile.txt-o$i.wav i=$((i+1)) 完成<“$filename”
我认为这将完成提取每一行并将其转换为相应的
.wav
文件的工作。

#/bin/bash
i=1
filename=/path/to/text/file
而read-r行
做
echo$line>somefile.txt
text2wave somefile.txt-o$i.wav
i=$((i+1))
完成<“$filename”


我认为这将完成提取每一行并将其转换为相应的
.wav
文件的工作。

在.txt中的每一行都将转换为1.wav 2.wav。。分别地我说的对吗?@AshishK是的,没错。我将对其进行编辑以使其更清晰,我正在为您编写脚本。只是一个minute@AshishK请随意将其作为答案发布,如果可能,您可以提供一些解释其工作原理的注释。txt中的每一行都转换为1.wav 2.wav。。分别地我说的对吗?@AshishK是的,没错。我将对其进行编辑以使其更清晰,我正在为您编写脚本。只是一个minute@AshishK请随意将其作为一个答案发布,如果可能的话,您可以提供一些评论来解释它是如何工作的。我已经试着让它尽可能简单。如果有什么我可以告诉你的,你可以通过它和ping:)好的,这是合法的。我唯一不太明白的一行是
count=
wc-l$text | awk'{print$1}`我猜是while循环。我试图从count变量读取文本文件中存在的行数。但是
wc-l
格式提供输出,awk只提供计数。如果我错了,请纠正我,但基本上是获取第I行并将其写入somefile.txt,创建一个.wav文件,然后对其他行重复该过程。在while循环中,我检查
I
变量是否与我相同递增小于或等于
计数
,每次迭代时,它从文本文件中提取一行,放入
somefile.txt
,并将
somefile.txt
转换为
.wav
字符在每次迭代时都会将somefile.txt写入下一行的内容。我已尝试使其尽可能简单。如果有什么我可以告诉你的,你可以通过它和ping:)好的,这是合法的。我唯一不太明白的一行是
count=
wc-l$text | awk'{print$1}`我猜是while循环。我试图从count变量读取文本文件中存在的行数。但是
wc-l
格式提供输出,awk只提供计数。如果我错了,请纠正我,但基本上是获取第I行并将其写入somefile.txt,创建一个.wav文件,然后对其他行重复该过程。在while循环中,我检查
I
变量是否与我相同递增小于或等于
计数
,每次迭代时,它从文本文件中提取一行,放入
somefile.txt
,并将
somefile.txt
转换为
.wav
字符在每次迭代时都会将somefile.txt写入下一行的内容。