mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
* docs: Fix syntax error in real-time ASR example (Issue #2720) Added documentation to fix syntax error in real-time speech recognition example. * docs: Add implementation guide for syntax error fix (Issue #2720) Added a section detailing files needing updates for the total_chunk_num calculation syntax error, including examples and testing instructions. * fix: Correct total_chunk_num syntax error in paraformer_streaming/demo.py * Correct total_chunk_num calculation in demo.py Fix calculation of total_chunk_num for speech processing.
This commit is contained in:
@@ -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
|
||||
@@ -31,8 +31,7 @@ speech, sample_rate = soundfile.read(wav_file)
|
||||
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(
|
||||
|
||||
Reference in New Issue
Block a user