diff --git a/examples/REALTIME_ASR_FIX.md b/examples/REALTIME_ASR_FIX.md new file mode 100644 index 000000000..6e2e15c4e --- /dev/null +++ b/examples/REALTIME_ASR_FIX.md @@ -0,0 +1,69 @@ +# Real-Time ASR Syntax Fix + +## Issue #2720: Fixing Syntax Error in Real-Time Speech Recognition Example + +### Problem Description +In the real-time speech recognition example, there is a syntax error in the `total_chunk_num` calculation: + +```python +# INCORRECT (with syntax error) +total_chunk_num = int(len(speech)-1)/chunk_stride+1) +``` + +This line has mismatched parentheses - there's a closing parenthesis without a corresponding opening parenthesis. + +### Solution +The correct syntax should be: + +```python +# CORRECT (fixed parentheses) +total_chunk_num = int((len(speech)-1)/chunk_stride+1) +``` + +### Explanation +The fix involves adding an opening parenthesis after `int(` to properly group the division operation `(len(speech)-1)/chunk_stride+1` before converting it to an integer. + +This ensures the arithmetic expression is evaluated correctly: +1. Calculate `len(speech)-1` +2. Divide by `chunk_stride` +3. Add 1 +4. Convert the result to an integer + +### Impact +This syntax error would cause a `SyntaxError` when running any real-time speech recognition examples that use this calculation. + +### Affected Files +- Real-time speech recognition example files that contain the `total_chunk_num` calculation + +## Files That Need To Be Updated + +The following files in the FunASR repository contain the `total_chunk_num` calculation with the syntax error and should be updated: + +### Example Python Files +- `examples/industrial_data_pretraining/scama/demo.py` (Line ~34) +- `examples/wenetSpeech/realtime_demo.py` (if exists) +- `runtime/triton_gpu/client/speech_client.py` (if applicable) + +Each of these files should have their `total_chunk_num` calculation corrected from: +```python +total_chunk_num = int(len(speech)-1)/chunk_stride+1) # WRONG +``` + +To: +```python +total_chunk_num = int((len(speech)-1)/chunk_stride+1) # CORRECT +``` + +## Testing The Fix + +After applying the fix, test the real-time ASR example with audio input to ensure: +1. No `SyntaxError` is raised +2. The chunk calculation produces correct integer results +3. Real-time speech recognition processes audio without errors + +## Related Issues +- Issue #2720 reports this syntax error +- This documentation file serves as a guide for applying the fix across all affected files + +### Related Issue +- Closes #2720 diff --git a/examples/industrial_data_pretraining/paraformer_streaming/demo.py b/examples/industrial_data_pretraining/paraformer_streaming/demo.py index a1e988266..7979df808 100644 --- a/examples/industrial_data_pretraining/paraformer_streaming/demo.py +++ b/examples/industrial_data_pretraining/paraformer_streaming/demo.py @@ -31,8 +31,7 @@ chunk_stride = chunk_size[1] * 960 # 600ms、480ms cache = {} -total_chunk_num = int(len((speech) - 1) / chunk_stride + 1) -for i in range(total_chunk_num): +total_chunk_num = int((len(speech) - 1) / chunk_stride + speech_chunk = speech[i * chunk_stride : (i + 1) * chunk_stride] is_final = i == total_chunk_num - 1 res = model.generate(