Nodes/dll-comfyui-node/Bailian Paraformer Batch ASR
ComfyUI Node

Bailian Paraformer Batch ASR

Batch speech-to-text with zero local compute — if you're okay with the cloud

By dlliang14·Created 6 months ago·Updated 2 months ago· 0
Bailian Paraformer Batch ASR
    • texts
    • transcription_urls
    • report_json
    audio_urls
    language_hintszh
    modelparaformer-v2
    continue_on_errortrue
    poll_interval_sec2
    timeout_sec600
    api_key

    Bailian Paraformer Batch ASR is the payoff node in this pack: it turns audio into text, and it does it without running a single model on your machine. Behind the scenes it fires async transcription jobs at Alibaba Cloud's DashScope service - the same cloud umbrella that gives you Qwen and Wan - and polls until they finish. No GPU, no local model download, no VRAM pressure. The trade is that it needs a DashScope API key and you pay per minute of audio processed.

    It's the final step of the pipeline the pack is built around: FFmpeg Batch Convert with OSS output hands you presigned audio URLs, this node takes those URLs, transcribes each file, and returns the text. Paraformer is Alibaba's multilingual ASR and the default language hint is zh, so it's genuinely strong for Chinese audio - that's its sweet spot. For English-only work, honestly, running Whisper locally is free and usually less hassle. This is the node for when you want ASR entirely off your box, or you're already living inside Alibaba's ecosystem.

    How it works

    You feed it one HTTP/HTTPS URL per line in audio_urls - they must be publicly reachable or presigned. The node is strict about this: anything that isn't http:// or https:// gets rejected, and its own error message tells you to set the FFmpeg node's oss_output_mode=presigned_url if the input comes from there. For each URL it calls DashScope's async transcription API, polls every poll_interval_sec seconds until the task hits SUCCEEDED or FAILED, then extracts the transcript. The code has fallback handling for the different response shapes the API returns, including per-file subtask results and a sentence_list payload. The API key comes from the api_key input or the DASHSCOPE_API_KEY environment variable - if neither exists, it refuses to run.

    Inputs that matter

    • audio_urls - one URL per line, public or presigned. The one that matters most.
    • language_hints - comma- or semicolon-separated, default zh.
    • model - default paraformer-v2.
    • poll_interval_sec (default 2) and timeout_sec (default 600) - how hard it waits on the API. Long audio batches can outrun the 600-second default, so bump it.
    • continue_on_error - keep transcribing the rest when one file fails.
    • api_key - optional; only needed if you're not setting the env var.

    Outputs are texts (one transcript per line, matching the input order), transcription_urls (the result files DashScope produced), and report_json with per-file status and task IDs.

    Install and gotchas

    Same install as the rest of the pack - ComfyUI Manager, search dll-comfyui-node, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/dlliang14/dll-comfyui-node
    cd dll-comfyui-node && pip install -r requirements.txt
    

    Its dependency is dashscope (plus the pack's other two). The classic failure mode, and it's a real one: Invalid Api-Key. Community threads about DashScope are full of it - the key has to come from Alibaba Cloud's Model Studio console, the DashScope service has to be enabled on your account, and the key has to be from the region your endpoint uses. Paste the right pair or you'll chase ghosts. Also remember this is an API call: the first run needs internet, and if you've got this running on a pod behind a firewall with no egress to Alibaba's cloud, you'll see timeouts, not a local error. One more honest note: this whole pack is niche and mostly Chinese-documented, so when you hit something weird, the source in custom_nodes/dll-comfyui-node/nodes/asr_nodes.py is short enough to read in one sitting.

    Categorydlliang14/asr

    Inputs (7)

    NameTypeDefaultDescription
    audio_urlsSTRING
    language_hintsSTRINGzh
    modelSTRINGparaformer-v2
    continue_on_errorBOOLEANtrue
    poll_interval_secINT21–30
    timeout_secINT60030–7200
    api_keyoptSTRING

    Outputs (3)

    NameTypeDescription
    textsSTRING
    transcription_urlsSTRING
    report_jsonSTRING