我已经这样做了:
me@riverbrain:~/sgf$ echo "test" | text2wave -otype raw -F 16000 >> test.raw
Run Code Online (Sandbox Code Playgroud)
这产生了一个无头的音频文件。这个文件的美妙之处在于它可以cat
与另一个原始音频文件连接(使用,如文本)。
当然,我有问题。问题是我还不能玩。
me@riverbrain:~/sgf$ play test.raw
play FAIL formats: bad input format for file `test.raw': sampling rate was not specified
Run Code Online (Sandbox Code Playgroud)
而且,在指定采样率时
me@riverbrain:~/sgf$ play -r 16000 test.raw
play FAIL formats: bad input format for file `test.raw': data encoding was not specified
Run Code Online (Sandbox Code Playgroud)
当我查找一些“编码”信息时,我觉得这与您的处理器架构有很大关系,但也许我错了。无论如何,我找不到任何关于如何“询问”计算机原始音频文件的数据编码是什么的文档。而且我也知道采样率是多少,因为我是自己设置的,但这是我所能得到的。
它可以变化——但至少对我来说,text2wave 产生 1 通道、16 位、有符号整数 PCM。这些是相当正常的——当你把它们弄对时会很清楚(例如,如果你错误地使用了无符号整数,你会得到极度失真的声音)
玩,这看起来像:
play -r 16000 -b 16 -c 1 -e signed-integer /tmp/foo.raw
play -r 16000 -2 -s -c 1 /tmp/foo.raw # obsolete way for older versions of Sox
Run Code Online (Sandbox Code Playgroud)
我怀疑这些参数是在 Festival 某处配置的。其中一些也可能是硬编码的。
您可能会遇到的唯一与架构相关的事情是大端与小端;在我的 little-endian 机器上,Festival 正在编写 little-endian;如果我将该文件移动到大端机器上,我可能需要添加-L
. 如果text2wav
在 big-endian 机器上运行,我不确定它是否会写入 big-endian 或 little-endian 数据。
归档时间: |
|
查看次数: |
22081 次 |
最近记录: |