gpt4 book ai didi

java - 如何确定在注册时结束句子的时间?

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:39 26 4
gpt4 key购买 nike

我自己写了一组代码来记录我通过麦克风说的话。我想了解谷歌在“沉默”时用于停止录音的功能。例如,如果我继续谷歌并按下麦克风符号,我可以说出我打算寻找的内容,但是它用来理解我什么也没说的时刻(“沉默”的时刻)的功能是什么?我想过做一个循环,在这个循环中,他们正在记录一些声音帧的一些 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 来检查静默,并在发现静默时停止主线程。您必须使用自己的 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 - 如何确定在注册时结束句子的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com