Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`_ParticipantAudioInputStream` 补静音帧时`data` 长度未乘声道数,多声道配置下抛`ValueError`

Cerrado Apto para principiantes
#7,967 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #7968 de @Hugo-DDT — fusionado
  • #7975 de @its-amann — cerrado sin fusionar

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Lee livekit/agents/voice/room_io/_input.py, especialmente las líneas 390–399 de _ParticipantAudioInputStream._forward_task, y comprueba cómo se calcula el tamaño del frame de silencio en función de num_channels. Confirma que la longitud de bytes esperada es num_channels × samples_per_channel × 2; el trabajo estará terminado cuando se pueda crear el frame sin ValueError para una entrada multicanal.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Bug Description
  • File :livekit/agents/voice/room_io/_input.py
  • Lines : 390–399(_ParticipantAudioInputStream._forward_task 方法尾部)
  • Package : livekit-agents(Python SDK)
Root Cause

当远端音频 track 断流、super()._forward_task() 主循环退出后,子类会补一帧 0.5 秒静音(让下游 VAD/STT 能正确检测到停顿)。这帧的字节数据手工构造时 只按"每样本 2 字节"计算,却漏乘了num_channels :

Expected Behavior
  • Expected : 无论num_channels 为多少,AudioFrame 的data 长度都应为num_channels × samples_per_channel × 2
  • Actual : data 长度始终为samples_per_channel × 2 ,多声道下触发构造函数校验失败
Reproduction Steps
- 配置`AgentSession` 的`RoomIO` 输入音频为多声道(`num_channels=2` 或更高)——比如`RoomInputOptions(num_channels=2)` 或自定义`VoicePipeline` 里`input_audio_options.num_channels = 2`
- 正常跑通一次对话,让远端 participant 断开 / unmute 停止发布音频
- 触发`_on_track_unsubscribed` →`_close_stream` → 新建 stream 并重启`_forward_task` (或 participant 直接断连,主循环自然结束)
- 立刻抛出`ValueError: data length must be >= num_channels * samples_per_channel * sizeof(int16)`
Operating System

Windows11

Models Used

No response

Package Versions
livekit-agents=1.8.0
Session/Room/Call IDs

No response

Proposed Solution

Additional Context

No response

Screenshots and Recordings

No response

Lenguaje dominante
Python
Estrellas
14.6k
Forks
3.9k
Merge medio
3 d 20 h
PR fusionados (30 d)
193

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de livekit/agents

Todos los issues de livekit/agents

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.