我正在寻找如何使用CMU Sphinx和Ruby(Rails)应用程序.我需要非常简单的任务 - 我有一个mp3文件,我想把它转录成文本.
我该如何实现这种最简单的方法?我不知道C/C++,我的任务不是那么大的学习C/C++ :)
感谢帮助!
我的要求与此问题类似,因为问题现在已经3年了,我正在重新发布具有我特定信息的问题,我想创建一个采用.wav(或任何其他标准音频文件格式)并转换的应用程序它发短信.
对于语音识别,我决定使用sphinx4,我正在尝试增强sphinx提供的Transcriber演示.它很好,但只适用于特定的语法(用.gram和.gxml文件编写).
编辑 能够用英语吗?我正在尝试使用VoxForge_en_0.4进行配置.我的config.XML文件如下: -
<?xml version="1.0" encoding="UTF-8"?>
<!--
Sphinx-4 Configuration file
-->
<!-- ******************************************************** -->
<!-- biship configuration file -->
<!-- ******************************************************** -->
<config>
<!-- ******************************************************** -->
<!-- frequently tuned properties -->
<!-- ******************************************************** -->
<property name="absoluteBeamWidth" value="500"/>
<property name="relativeBeamWidth" value="1E-80"/>
<property name="absoluteWordBeamWidth" value="20"/>
<property name="relativeWordBeamWidth" value="1E-60"/>
<property name="wordInsertionProbability" value="1E-16"/>
<property name="languageWeight" value="7.0"/>
<property name="silenceInsertionProbability" value=".1"/>
<property name="frontend" value="epFrontEnd"/>
<property name="recognizer" value="recognizer"/>
<property name="showCreations" value="false"/>
<!-- ******************************************************** -->
<!-- word recognizer configuration -->
<!-- ******************************************************** -->
<component …Run Code Online (Sandbox Code Playgroud) 我想用缅甸语进行语音识别.
我参考以下链接:
但没有取得任何成功,
有没有其他方式像记录和转换语音到文本或记录后与音频文件比较.请帮帮我,给我任何解决方案.
我有一大堆文件,我想在使用CMU Sphinx 4时获得认可.Sphinx需要以下格式:
我的文件类似于44100 khz,32位立体声mp3文件.我尝试使用Tritonus,然后使用更新版本JavaZoom,使用bakuzen中的代码进行转换.然而,AudioSystem.getAudioInputStream(File)抛出一个UnsupportedAudioFileException,我无法弄清楚为什么,所以我继续前进.
现在我正在尝试ffmpeg.该命令ffmpeg -i input.mp3 -ac 1 -ab 16 -ar 16000 output.wav似乎应该可以解决这个问题(除了小端),但是当我用Audacity检查输出时,它仍然将其标记为"32位浮点数".我在这个网站上找到的命令也使用了-acodec pcm_s16le,它的名字似乎是输出16位小端; 但是,Audacity仍然告诉我输出结果32 bit float.
谁能告诉我如何将音频文件转换为CMU Sphinx 4所需的格式?
我正在寻找一种匹配已知数据集的方法,比方说一个MP3或wav文件列表,每个文件都是有人说话的样本.此时我知道文件ABC是人X讲的.
然后,我想采取另一个样本,并进行一些语音匹配,以显示这个语音最有可能的人,然后给出已知的数据集.
此外,我不一定关心这个人说了什么,只要我能找到一个匹配,即我不需要任何抄录或其他.
我知道CMU Sphinx不进行语音识别,它主要用于语音到文本,但我见过其他系统,例如:LIUM Speaker Diarization(http://cmusphinx.sourceforge.net/wiki/ speakerdiarization)或VoiceID项目(https://code.google.com/p/voiceid/),它使用CMU作为此类工作的基础.
如果我要使用CMU,我该如何进行语音匹配?
另外,如果CMU Sphinx不是最好的框架,那么还有一个替代的开源吗?
audio speech-recognition pattern-matching voice-recognition cmusphinx
我最近在python中使用口袋狮身人面像.我已经成功地通过以下示例来识别录制的wav.
#!/usr/bin/env python
import sys,os
def decodeSpeech(hmmd,lmdir,dictp,wavfile):
"""
Decodes a speech file
"""
try:
import pocketsphinx as ps
import sphinxbase
except:
print """Pocket sphinx and sphixbase is not installed
in your system. Please install it with package manager.
"""
speechRec = ps.Decoder(hmm = hmmd, lm = lmdir, dict = dictp)
wavFile = file(wavfile,'rb')
wavFile.seek(44)
speechRec.decode_raw(wavFile)
result = speechRec.get_hyp()
return result[0]
if __name__ == "__main__":
hmdir = "/home/jaganadhg/Desktop/Docs_New/kgisl/model/hmm/wsj1"
lmd = "/home/jaganadhg/Desktop/Docs_New/kgisl/model/lm/wsj/wlist5o.3e-7.vp.tg.lm.DMP"
dictd = "/home/jaganadhg/Desktop/Docs_New/kgisl/model/lm/wsj/wlist5o.dic"
wavfile = "/home/jaganadhg/Desktop/Docs_New/kgisl/sa1.wav"
recognised = decodeSpeech(hmdir,lmd,dictd,wavfile)
print …Run Code Online (Sandbox Code Playgroud) 我正在寻找德语发音词典,以便用于PocketSphinx/CMU Sphinx.
字典看起来像这样:
BACK B AE K
CALL K AO L
NO N OW
NUMBER N AH M B ER
ONE W AH N
ONE(2) HH W AH N
REPLY R IH P L AY
REPLY(2) R IY P L AY
SEND S EH N D
STOP S T AA P
THREE TH R IY
TWO T UW
YES Y EH S
Run Code Online (Sandbox Code Playgroud)
找到这些用于英语是没有问题的,但我找不到它们用于德语.你知道在哪里找到它吗?
我一直在运行 Debian Squeeze 的 VM 上安装 Pocketsphinx0.7。这工作得很好,我可以尝试从文件中识别语音。有了这个,我构建了一些 python 脚本来识别我得到的一堆文件,然后估计单词错误率。这些使用 gstreamer,如本教程中所述。
到目前为止,我使用的是 Pocketsphinx tarball 中的原始 hmm,这是一个字典,其中只包含我的测试数据中的单词和我从教授那里得到的优化语言模型。这应该可以工作,因为它也在生产系统中运行。我现在的问题是识别性能仍然很糟糕。我的单词错误 (WER) 率约为 85%。
我想知道的是如何改进 WER。我可以采取什么样的步骤?
发生并可能影响性能的另一件事是,pocketsphinx 告诉我它没有访问 hmm 的权限,尽管我让每个人都可以读取、写入和执行 hmm。
有谁知道这可能来自哪里?我很感激任何形式的帮助。如果您需要更多信息,请告诉我。
编辑:
我创建了一个小型测试集并运行了pocketsphinx。您可以在此处找到文件和结果。我被允许从原始测试集中给你一些例子。你可以在这里找到它。
这些是最糟糕的例子。1-2 个单词的简短话语效果很好。抱歉,到目前为止我无法创建大型测试集,我的时间非常有限。
我有一个想法,可能需要CMU Sphinx的应用程序,是否可以通过maven,或者我需要手动添加?
我正在尝试从已经解压缩到工作场所的现有项目创建一个项目(在eclipse ADT上).
我基本上遵循以下说明:
http://cmusphinx.sourceforge.net/2011/05/building-pocketsphinx-on-android/
但是一旦导入项目,我收到了这个不明确的错误消息:
build path contains duplicate entry: 'src' for project 'AndroidPocketSphinx'
Run Code Online (Sandbox Code Playgroud)
好吧,我检查了目录树:那里只有一个'src'子目录.
我在这里也发现了类似的帖子,但在我的环境中找不到建议的解决方案.也就是说,已经检查了目标名称(Android不在资源下,BTW,这是一种视错觉).所以这不是问题.
有趣的是,该项目确实出现在Package Explorer中:
没有错误,只有19个警告.
绝大多数警告是针对未使用的导入,值和字段,所以我可以忽略它们,但我不明白以下警告:
Description Resource Path Location Type
Build path specifies execution environment J2SE-1.3. There are no JREs installed in the workspace that are strictly compatible with this environment. AndroidPocketSphinx Build path JRE System Library Problem
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
谢谢
更新:这是项目.classpath文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src">
<attributes> …Run Code Online (Sandbox Code Playgroud)