在一个人说话时识别段?

Avi*_*Avi 9 speech-recognition

有没有人知道(最好是C#.Net)图书馆,它允许我在录音中找到特定人说话的那些片段?

小智 20

使用工具包SHoUT可以实现:http://shout-toolkit.sourceforge.net/index.html

它是用C++编写的,并针对Linux进行了测试,但它也应该在Windows或OSX下运行.

该工具包是我的自动语音识别(ASR)博士研究的副产品.将它用于ASR本身可能不是那么简单,但对于语音活动检测(SAD)和语言化(找到一个特定人的所有语音),它很容易使用.这是一个例子:

  1. 创建一个16KHz,16bits,little-endian,mono的无头pcm音频文件.我使用ffmpeg来创建原始文件:ffmpeg -i [INPUT_FILE] -vn -acodec pcm_s16le -ar 16000 -ac 1 -f s16le [RAW_FILE]以小端编码文件大小(4字节)为无头数据加前缀.确保文件具有.raw扩展名,因为shout_cluster会根据扩展名检测文件类型.

  2. 执行语音/非语音分段: ./ shout_segment -a [RAW_FILE] -ams [SHOUT_SAD_MODEL] -mo [SAD_OUTPUT] 输出文件将为您提供某人正在讲话的片段(标有"SPEECH".当然,因为这一切都是自动完成的,系统可能会出错......),其中有声音不是语音("声音")或沉默("静音").

  3. 执行二值化: ./ shout_cluster -a [RAW_FILE] -mo [DIARIZATION_OUTPUT] -mi [SAD_OUTPUT] 使用shout_segment的输出,它将尝试确定录音中有多少个扬声器,标记每个扬声器("SPK01", "SPK02"等)然后查找每个扬声器的所有语音段.

我希望这个能帮上忙!