java – 如何确定在注册期间结束句子的时间?
作者:互联网
我自己写了一组代码来记录我通过麦克风说的内容.
我想了解谷歌在“沉默”时用来停止录音的功能.例如,如果我继续谷歌并按麦克风符号,我可以说我打算寻找什么,但它用什么功能来理解我什么都不说(“沉默”的那一刻)?我想过做一个循环,他们正在记录几个声音帧的dB或RMS,相比之下,我可以理解是否有“沉默”.
到现在为止,时间是静止的.
public static void main(String[] args) {
final Main REGISTRAZIONE = new Main();
Thread TIME = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(RECORD_TIME);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
REGISTRAZIONE.finish();
}
});
TIME.start();
REGISTRAZIONE.start();
}
解决方法:
检查dB的方法很好.然后,您可以使用另一个线程来检查静默,并在找到它时停止主线程.您必须使用自己的Thread实现,以便它可以将TIME作为参数并在静默时停止它:
public class Recorder {
static Long RECORD_TIME = 100000L; //or whatever time you use
public static void main(String[] args) {
final Main REGISTRAZIONE = new Main();
Thread TIME = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(RECORD_TIME);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
REGISTRAZIONE.finish();
}
});
TIME.start();
myThread finisher = new myThread(TIME);
finisher.start();
REGISTRAZIONE.start();
}
}
class myThread extends Thread implements Runnable {
private Thread TIME;
public myThread(Thread TIME) {
this.TIME = TIME;
}
public void run() {
while (!silence()) {
// do nothing
}
TIME.interrupt();
}
private boolean silence() {
//record and calculate the dB volume and compare to some level
return true;
}
}
标签:java,eclipse,java-ee,speech-recognition,microphone 来源: https://codeday.me/bug/20190709/1409086.html