我有一群人阅读简单句子(你好世界)作为一个wav文件, 我怎样才能打破2个wav文件的wav文件,每个包含词(你好和世界)认识到这些词之间的差距? 不幸的是,我无法找到工具来为我做这件事,所以我会写C代码做到这一点, 至于我的理解,在wav文件中的差距应该是低数值,是正确的? 我知道如何打破文件, 我很高兴为差距识别问题获得方法。 谢谢!C:通过沉默差距分割wav文件
2
A
回答
2
我接近这种类型的任务的方式是将wav文件分成例如0.05秒的块,计算每个块的RMS幅度,并将RMS放大器与阈值进行比较。如果记录是在精心控制的条件下完成的,并且语音音量相对良好地标准化,则阈值可以是静态值,但是另一种方式是动态地检查比前一个块更大声的块。然后,您将超阈值块视为单词的开头。
但是,在临时演讲中,词语之间可能没有太多停顿。如果我毫不停顿地对你说“helloworld”,你可以很容易理解我。
RMS幅度被定义为各个样本平方的平均随时间的平方根。
1
请参阅this answer关于音符开始检测(检测WAV文件中音符的开始和结束与检测WAV文件中的说出的单词的开始和结束完全相同的问题)。
但是,请注意,如果没有非常复杂的(并且尚未存在的)人工智能,您为自己设定的任务基本上是不可能的。当一个人在录音中说话时,单个单词之间通常没有差距,在数字上与多音节单词内单个音节之间的差距不同。
3
http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/
我相信这是你需要的链接。
sox in.wav out.wav silence 1 0.5 1% 1 5.0 1% : newfile : restart
SoX会在检测到5秒或更长时间的静音时分割音频。您将以out001.wav,out002.wav等输出文件结束。
+0
./sox in.wav out.wav沉默1 0.1 0%1 0.1 0%:newfile:restart –
相关问题
- 1. 在wav文件中的声音/沉默
- 2. C#.wav文件通过UDP
- 3. 分割音频文件(WAV)
- 4. 将wav文件分割成片段
- 5. WAV文件分割器工具
- 6. 如何在Java中将Wav文件分割为多个通道?
- 7. 如何通过编程将沉默插入音频文件?
- 8. 通过SSH沉默一个大文件夹
- 9. 如何通过读取C++文件来分割ByteArray?
- 10. Java - Wav音频分割
- 11. 循环通过WAV文件在C(或C + +)
- 12. 通过分割线
- 13. 通过分割它
- 14. 快速通知沉默
- 15. 分割读取文件C++
- 16. .net C#分割xml文件
- 17. 通过套接字发送wav文件
- 18. 通过表格发送wav文件
- 19. WAV文件分析C(libsndfile,fftw3)
- 20. 通过C#中的行数将大文件分割成更小的文件?
- 21. 如何通过文件头分割合并的文件?
- 22. 如何通过Windows API设置.wav文件的位深度? (C#)
- 23. 通过FFT将1000Hz噪声添加到wav文件中C
- 24. 无法通过语音识别创建WAV文件。 (C#)
- 25. 如何使用Java将wav文件分割为更小的块?
- 26. 使用Java分割使用XML的wav文件
- 27. 快速分割使用R的大型.wav文件的方法
- 28. SQL命令通过分割“/”
- 29. vb.net文本文件通过分割线组合框
- 30. 通过特定符号在.txt文件中分割文本
那么pasudo代码会是这样吗?
user648026
'SAMPLE_SIZE = 0.05;对于(int idxFile = 0; idxFile
无新线:\t \t} \t \t RMS_amplitude = SQUARE(FSUM/SAMPLE_SIZE) \t如果(RMS_amplitude <阈值){ \t \t打印(+ idxFile “差距在字节检测”)在评论中,不可思议的... [链接](http://meta.stackexchange.com/questions/197/how-about-newlines-within-comments) – user648026
样本不是秒。样本不是字节。否则,这是非常粗略的想法。 –