我正在编写一个应用程序,它的行为将类似于现有的语音识别,但将发送声音数据到一个专有的web服务来执行语音识别部分。我使用的标准MediaRecord (这是AMR编码),似乎是完美的语音识别。通过getMaxAmplitude()方法提供的唯一数据是振幅。
我试图检测人什么时候开始说话,这样当这个人停止说话大约2秒时,我就可以继续将声音数据发送到web服务。现在,我用一个阈值来表示振幅,如果它超过一个值(即1500),那么我假设这个人在说话。我担心的是,振幅水平可能因设备而异(即Nexus One v Droid),因此我正在寻找一种更标准的方法,可以从振幅值中导出。
我看了,但它并没有提供一
有两类声音的识别模型,即A类和B类。
如何识别C类声音为异常声音?
我试图设定一个阈值,同时通过帧识别。
above 70% -> class A or B
else -> abnormal
例如,
如果一个声音有10个帧,那么结果是
frame 1 2 3 4 5 6 7 8 9 10
A B A B A A A B A A A=7 B=3
-> class A
frame 1 2 3 4 5 6 7 8 9 10
B B A B A A A B A A A=6 B=4
-> abnormal
演出很糟糕。
我该
我已经创建了一个程序,使用谷歌语音识别听我们的声音,然后执行程序,为这个短语编写脚本。以下是部分代码:
import speech_recognition as sr
import os
def takeCommand():
#It takes microphone input from the user and returns string output
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_