Committed by
GitHub
Fix VAD+ASR example for Dart API. (#1294)
There is no need to invoke vad.isDetected().
正在显示
7 个修改的文件
包含
114 行增加
和
134 行删除
| @@ -69,27 +69,25 @@ void main(List<String> arguments) async { | @@ -69,27 +69,25 @@ void main(List<String> arguments) async { | ||
| 69 | vad.acceptWaveform(Float32List.sublistView( | 69 | vad.acceptWaveform(Float32List.sublistView( |
| 70 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 70 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 71 | 71 | ||
| 72 | - if (vad.isDetected()) { | ||
| 73 | - while (!vad.isEmpty()) { | ||
| 74 | - final stream = recognizer.createStream(); | ||
| 75 | - final segment = vad.front(); | ||
| 76 | - stream.acceptWaveform( | ||
| 77 | - samples: segment.samples, sampleRate: waveData.sampleRate); | ||
| 78 | - recognizer.decode(stream); | ||
| 79 | - | ||
| 80 | - final result = recognizer.getResult(stream); | ||
| 81 | - | ||
| 82 | - final startTime = segment.start * 1.0 / waveData.sampleRate; | ||
| 83 | - final duration = segment.samples.length * 1.0 / waveData.sampleRate; | ||
| 84 | - final stopTime = startTime + duration; | ||
| 85 | - if (result.text != '') { | ||
| 86 | - print( | ||
| 87 | - '${startTime.toStringAsPrecision(4)} -- ${stopTime.toStringAsPrecision(4)}: ${result.text}'); | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - stream.free(); | ||
| 91 | - vad.pop(); | 72 | + while (!vad.isEmpty()) { |
| 73 | + final stream = recognizer.createStream(); | ||
| 74 | + final segment = vad.front(); | ||
| 75 | + stream.acceptWaveform( | ||
| 76 | + samples: segment.samples, sampleRate: waveData.sampleRate); | ||
| 77 | + recognizer.decode(stream); | ||
| 78 | + | ||
| 79 | + final result = recognizer.getResult(stream); | ||
| 80 | + | ||
| 81 | + final startTime = segment.start * 1.0 / waveData.sampleRate; | ||
| 82 | + final duration = segment.samples.length * 1.0 / waveData.sampleRate; | ||
| 83 | + final stopTime = startTime + duration; | ||
| 84 | + if (result.text != '') { | ||
| 85 | + print( | ||
| 86 | + '${startTime.toStringAsPrecision(4)} -- ${stopTime.toStringAsPrecision(4)}: ${result.text}'); | ||
| 92 | } | 87 | } |
| 88 | + | ||
| 89 | + stream.free(); | ||
| 90 | + vad.pop(); | ||
| 93 | } | 91 | } |
| 94 | } | 92 | } |
| 95 | 93 |
| @@ -76,25 +76,22 @@ void main(List<String> arguments) async { | @@ -76,25 +76,22 @@ void main(List<String> arguments) async { | ||
| 76 | vad.acceptWaveform(Float32List.sublistView( | 76 | vad.acceptWaveform(Float32List.sublistView( |
| 77 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 77 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 78 | 78 | ||
| 79 | - if (vad.isDetected()) { | ||
| 80 | - while (!vad.isEmpty()) { | ||
| 81 | - final samples = vad.front().samples; | ||
| 82 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 83 | - final endTime = | ||
| 84 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 85 | - | ||
| 86 | - final stream = recognizer.createStream(); | ||
| 87 | - stream.acceptWaveform( | ||
| 88 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 89 | - recognizer.decode(stream); | ||
| 90 | - | ||
| 91 | - final result = recognizer.getResult(stream); | ||
| 92 | - stream.free(); | ||
| 93 | - print( | ||
| 94 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 95 | - | ||
| 96 | - vad.pop(); | ||
| 97 | - } | 79 | + while (!vad.isEmpty()) { |
| 80 | + final samples = vad.front().samples; | ||
| 81 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 82 | + final endTime = | ||
| 83 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 84 | + | ||
| 85 | + final stream = recognizer.createStream(); | ||
| 86 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 87 | + recognizer.decode(stream); | ||
| 88 | + | ||
| 89 | + final result = recognizer.getResult(stream); | ||
| 90 | + stream.free(); | ||
| 91 | + print( | ||
| 92 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 93 | + | ||
| 94 | + vad.pop(); | ||
| 98 | } | 95 | } |
| 99 | } | 96 | } |
| 100 | 97 |
| @@ -84,25 +84,22 @@ void main(List<String> arguments) async { | @@ -84,25 +84,22 @@ void main(List<String> arguments) async { | ||
| 84 | 84 | ||
| 85 | vad.acceptWaveform(samples); | 85 | vad.acceptWaveform(samples); |
| 86 | 86 | ||
| 87 | - if (vad.isDetected()) { | ||
| 88 | - while (!vad.isEmpty()) { | ||
| 89 | - final samples = vad.front().samples; | ||
| 90 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 91 | - final endTime = | ||
| 92 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 93 | - | ||
| 94 | - final stream = recognizer.createStream(); | ||
| 95 | - stream.acceptWaveform( | ||
| 96 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 97 | - recognizer.decode(stream); | ||
| 98 | - | ||
| 99 | - final result = recognizer.getResult(stream); | ||
| 100 | - stream.free(); | ||
| 101 | - print( | ||
| 102 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 103 | - | ||
| 104 | - vad.pop(); | ||
| 105 | - } | 87 | + while (!vad.isEmpty()) { |
| 88 | + final samples = vad.front().samples; | ||
| 89 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 90 | + final endTime = | ||
| 91 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 92 | + | ||
| 93 | + final stream = recognizer.createStream(); | ||
| 94 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 95 | + recognizer.decode(stream); | ||
| 96 | + | ||
| 97 | + final result = recognizer.getResult(stream); | ||
| 98 | + stream.free(); | ||
| 99 | + print( | ||
| 100 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 101 | + | ||
| 102 | + vad.pop(); | ||
| 106 | } | 103 | } |
| 107 | } | 104 | } |
| 108 | 105 |
| @@ -81,25 +81,22 @@ void main(List<String> arguments) async { | @@ -81,25 +81,22 @@ void main(List<String> arguments) async { | ||
| 81 | vad.acceptWaveform(Float32List.sublistView( | 81 | vad.acceptWaveform(Float32List.sublistView( |
| 82 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 82 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 83 | 83 | ||
| 84 | - if (vad.isDetected()) { | ||
| 85 | - while (!vad.isEmpty()) { | ||
| 86 | - final samples = vad.front().samples; | ||
| 87 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 88 | - final endTime = | ||
| 89 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 90 | - | ||
| 91 | - final stream = recognizer.createStream(); | ||
| 92 | - stream.acceptWaveform( | ||
| 93 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 94 | - recognizer.decode(stream); | ||
| 95 | - | ||
| 96 | - final result = recognizer.getResult(stream); | ||
| 97 | - stream.free(); | ||
| 98 | - print( | ||
| 99 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 100 | - | ||
| 101 | - vad.pop(); | ||
| 102 | - } | 84 | + while (!vad.isEmpty()) { |
| 85 | + final samples = vad.front().samples; | ||
| 86 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 87 | + final endTime = | ||
| 88 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 89 | + | ||
| 90 | + final stream = recognizer.createStream(); | ||
| 91 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 92 | + recognizer.decode(stream); | ||
| 93 | + | ||
| 94 | + final result = recognizer.getResult(stream); | ||
| 95 | + stream.free(); | ||
| 96 | + print( | ||
| 97 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 98 | + | ||
| 99 | + vad.pop(); | ||
| 103 | } | 100 | } |
| 104 | } | 101 | } |
| 105 | 102 |
| @@ -73,25 +73,22 @@ void main(List<String> arguments) async { | @@ -73,25 +73,22 @@ void main(List<String> arguments) async { | ||
| 73 | vad.acceptWaveform(Float32List.sublistView( | 73 | vad.acceptWaveform(Float32List.sublistView( |
| 74 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 74 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 75 | 75 | ||
| 76 | - if (vad.isDetected()) { | ||
| 77 | - while (!vad.isEmpty()) { | ||
| 78 | - final samples = vad.front().samples; | ||
| 79 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 80 | - final endTime = | ||
| 81 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 82 | - | ||
| 83 | - final stream = recognizer.createStream(); | ||
| 84 | - stream.acceptWaveform( | ||
| 85 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 86 | - recognizer.decode(stream); | ||
| 87 | - | ||
| 88 | - final result = recognizer.getResult(stream); | ||
| 89 | - stream.free(); | ||
| 90 | - print( | ||
| 91 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 92 | - | ||
| 93 | - vad.pop(); | ||
| 94 | - } | 76 | + while (!vad.isEmpty()) { |
| 77 | + final samples = vad.front().samples; | ||
| 78 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 79 | + final endTime = | ||
| 80 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 81 | + | ||
| 82 | + final stream = recognizer.createStream(); | ||
| 83 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 84 | + recognizer.decode(stream); | ||
| 85 | + | ||
| 86 | + final result = recognizer.getResult(stream); | ||
| 87 | + stream.free(); | ||
| 88 | + print( | ||
| 89 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 90 | + | ||
| 91 | + vad.pop(); | ||
| 95 | } | 92 | } |
| 96 | } | 93 | } |
| 97 | 94 |
| @@ -80,25 +80,22 @@ void main(List<String> arguments) async { | @@ -80,25 +80,22 @@ void main(List<String> arguments) async { | ||
| 80 | vad.acceptWaveform(Float32List.sublistView( | 80 | vad.acceptWaveform(Float32List.sublistView( |
| 81 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 81 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 82 | 82 | ||
| 83 | - if (vad.isDetected()) { | ||
| 84 | - while (!vad.isEmpty()) { | ||
| 85 | - final samples = vad.front().samples; | ||
| 86 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 87 | - final endTime = | ||
| 88 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 89 | - | ||
| 90 | - final stream = recognizer.createStream(); | ||
| 91 | - stream.acceptWaveform( | ||
| 92 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 93 | - recognizer.decode(stream); | ||
| 94 | - | ||
| 95 | - final result = recognizer.getResult(stream); | ||
| 96 | - stream.free(); | ||
| 97 | - print( | ||
| 98 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 99 | - | ||
| 100 | - vad.pop(); | ||
| 101 | - } | 83 | + while (!vad.isEmpty()) { |
| 84 | + final samples = vad.front().samples; | ||
| 85 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 86 | + final endTime = | ||
| 87 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 88 | + | ||
| 89 | + final stream = recognizer.createStream(); | ||
| 90 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 91 | + recognizer.decode(stream); | ||
| 92 | + | ||
| 93 | + final result = recognizer.getResult(stream); | ||
| 94 | + stream.free(); | ||
| 95 | + print( | ||
| 96 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 97 | + | ||
| 98 | + vad.pop(); | ||
| 102 | } | 99 | } |
| 103 | } | 100 | } |
| 104 | 101 |
| @@ -84,25 +84,22 @@ void main(List<String> arguments) async { | @@ -84,25 +84,22 @@ void main(List<String> arguments) async { | ||
| 84 | vad.acceptWaveform(Float32List.sublistView( | 84 | vad.acceptWaveform(Float32List.sublistView( |
| 85 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); | 85 | waveData.samples, start, start + vadConfig.sileroVad.windowSize)); |
| 86 | 86 | ||
| 87 | - if (vad.isDetected()) { | ||
| 88 | - while (!vad.isEmpty()) { | ||
| 89 | - final samples = vad.front().samples; | ||
| 90 | - final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 91 | - final endTime = | ||
| 92 | - startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 93 | - | ||
| 94 | - final stream = recognizer.createStream(); | ||
| 95 | - stream.acceptWaveform( | ||
| 96 | - samples: samples, sampleRate: waveData.sampleRate); | ||
| 97 | - recognizer.decode(stream); | ||
| 98 | - | ||
| 99 | - final result = recognizer.getResult(stream); | ||
| 100 | - stream.free(); | ||
| 101 | - print( | ||
| 102 | - '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 103 | - | ||
| 104 | - vad.pop(); | ||
| 105 | - } | 87 | + while (!vad.isEmpty()) { |
| 88 | + final samples = vad.front().samples; | ||
| 89 | + final startTime = vad.front().start.toDouble() / waveData.sampleRate; | ||
| 90 | + final endTime = | ||
| 91 | + startTime + samples.length.toDouble() / waveData.sampleRate; | ||
| 92 | + | ||
| 93 | + final stream = recognizer.createStream(); | ||
| 94 | + stream.acceptWaveform(samples: samples, sampleRate: waveData.sampleRate); | ||
| 95 | + recognizer.decode(stream); | ||
| 96 | + | ||
| 97 | + final result = recognizer.getResult(stream); | ||
| 98 | + stream.free(); | ||
| 99 | + print( | ||
| 100 | + '${startTime.toStringAsPrecision(5)} -- ${endTime.toStringAsPrecision(5)} : ${result.text}'); | ||
| 101 | + | ||
| 102 | + vad.pop(); | ||
| 106 | } | 103 | } |
| 107 | } | 104 | } |
| 108 | 105 |
-
请 注册 或 登录 后发表评论