AudioFrequencyConverter silently turns floating-point WAV input into silence
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 86/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- numpy, python
- Bereich
- audio-video-rtc
Rechercherichtung
Beginne in pyrit/converter/audio_frequency_converter.py mit dem Cast direkt vor wavfile.write und reproduziere das Problem über convert_async mit dem bereitgestellten float32-WAV-Beispiel. Überprüfe, dass eine zero-shift-Konvertierung keine vollständig aus Nullen bestehende Ausgabe mehr erzeugt und dass die Gleitkomma-Wellenform erhalten bleibt oder korrekt auf PCM skaliert wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
AudioFrequencyConverter reads floating-point WAV data successfully, but casts the shifted samples directly to int16 without scaling. A valid floating-point signal whose samples have magnitude below 1 is therefore written as all-zero audio. Conversion returns successfully, so the caller receives a silent artifact rather than an error. Even shift_value=0 loses the signal.
The cast is in pyrit/converter/audio_frequency_converter.py, immediately before wavfile.write. Existing success tests exercise int16 data. This differs from #2356, which fixed stereo broadcasting.
Steps/Code to Reproduce
Run from an environment with PyRIT installed:
import asyncio
import tempfile
from pathlib import Path
import numpy as np
from scipy.io import wavfile
from pyrit.converter import AudioFrequencyConverter
from pyrit.memory import CentralMemory, SQLiteMemory
async def main_async():
with tempfile.TemporaryDirectory() as directory:
memory = SQLiteMemory(db_path=':memory:')
memory.results_path = directory
CentralMemory.set_memory_instance(memory)
try:
source = Path(directory) / 'float.wav'
samples = np.array([0.0, 0.5, -0.5, 0.25], dtype=np.float32)
wavfile.write(source, 8000, samples)
result = await AudioFrequencyConverter(shift_value=0).convert_async(prompt=str(source))
rate, output = wavfile.read(result.output_text)
print('frequency:', output.dtype, output.tolist())
finally:
memory.dispose_engine()
asyncio.run(main_async())
Expected Results
A zero frequency shift preserves the input waveform and amplitude. Floating-point samples should either retain their representation or be correctly scaled if converted to PCM; silently truncating them is incorrect.
Actual Results
frequency: int16 [0, 0, 0, 0]
The input is float32 [0.0, 0.5, -0.5, 0.25].
Versions
Linux, Python 3.12.3, PyRIT 1.2.0.dev0 at 8934a3c4, NumPy 2.5.3, SciPy 1.18.1. Reproduced locally through the public convert_async methods with real WAV files; no model or external service is used.
- Vorherrschende Sprache
- Python
- Sterne
- 4.5k
- Forks
- 896
- Ø Merge
- 2 T. 22 Std.
- Gemergte PRs (30 T.)
- 220
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/PyRIT
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Bug: triage GUI help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
microsoft/PyRIT#2868 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 2 Tagen
-
feature-request
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in microsoft/PyRIT
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
kornia/kornia#5263 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
approved correction metadata
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
acl-org/acl-anthology#10133 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
BasedHardware/omi#20084 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug needs-acceptance wg/evaluation-quality
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
vllm-project/semantic-router#4424 ·
Maintainer antworten meist innerhalb von 1 Tag