Skip to content

PvRecorder captures all-zero PCM on Linux + PipeWire, causing Chinese live dictation to output only “嗯。” #4

Description

@sd1g1

On Linux + PipeWire, pi-transcribe live microphone dictation almost always outputs:

嗯。

Environment

OS: Arch Linux / Omarchy
Kernel: 7.1.8-arch1-3
Node.js: v26.7.0

Audio server: PulseAudio on PipeWire 1.6.8
Default source: alsa_input.pci-0000_06_00.6.analog-stereo

PvRecorder: @picovoice/pvrecorder-node@1.2.9
Backend: transcribe-cpp@0.2.1

pi-transcribe settings:

{
  "preferredLanguages": ["zh"],
  "transcriptionLanguage": "zh",
  "microphone": {
    "type": "device",
    "name": "Ryzen HD Audio Controller 模拟立体声",
    "occurrence": 0
  },
  "model": {
    "id": "Qwen3-ASR-1.7B",
    "path": "Qwen3-ASR-1.7B-Q5_K_M.gguf"
  }
}

System sources:

alsa_output.pci-0000_06_00.6.analog-stereo.monitor
alsa_input.pci-0000_06_00.6.analog-stereo

Verified

System microphone recording works:

parecord --file-format=wav test.wav
aplay test.wav

The recorded WAV contains clear speech.

The ASR model works:

transcribe_file test.wav

The same Chinese WAV is transcribed correctly.

The selected microphone in pi-transcribe is the actual input device:

Ryzen HD Audio Controller 模拟立体声

It is not a monitor source.

Live capture issue

I saved the final live microphone PCM right before sending it to ASR:

/tmp/pi-transcribe-debug.wav

The WAV format is valid:

16 kHz, mono, s16le

But the content is all-zero PCM. Example stats:

{
  "samples": 49664,
  "seconds": 3.104,
  "peak": 0,
  "rms": 0,
  "zeroRatio": 1
}

Running file transcription on this debug WAV also returns:

嗯。

So the observed behavior is:

PvRecorder live path -> all-zero PCM -> ASR outputs “嗯。”

while:

parecord recording -> valid speech WAV -> same ASR model transcribes Chinese correctly

Locally, changing live capture from PvRecorder to:

parecord --raw --format=s16le --rate=16000 --channels=1

then converting Int16 PCM to Float32 and sending it to the same backend makes Chinese live dictation work correctly.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions