You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AssemblyAI本地音频转写函数返回空结果问题求助

排查音频转写为空的问题

针对你遇到的空转写结果问题,结合你的代码和已知信息,可从以下几个方向排查:

1. 检查音频格式与编码兼容性

很多语音转写API对输入音频的格式、采样率、编码有严格要求,即使本地能播放,也可能不符合API规范。比如从aai命名推测你使用的AssemblyAI,它要求支持WAV、MP3、FLAC等常见格式,且推荐16kHz采样率、单声道配置。

解决方法:
将下载后的音频转换为标准格式,可借助pydub实现:

from pydub import AudioSegment

def convert_to_standard(audio_path):
    sound = AudioSegment.from_file(audio_path)
    # 转换为16kHz采样率、单声道的WAV格式
    sound = sound.set_frame_rate(16000).set_channels(1)
    standard_path = f"{audio_path.split('.')[0]}_standard.wav"
    sound.export(standard_path, format="wav")
    return standard_path

# 在get_transcript中替换音频处理步骤:
audio_file = download_audio(link)
audio_file = convert_to_standard(audio_file)

2. 验证音频音量与有效内容

时长7秒左右的音频如果音量过低,或内容为静音、无意义噪音,API会返回空文本。可以用Audacity等工具打开文件,查看波形:若波形几乎呈直线,说明无有效语音或音量不足。

解决方法:

  • 手动播放确认音频包含清晰语音内容
  • 用pydub提升音量:
sound = AudioSegment.from_file(audio_file)
sound = sound + 12  # 提升12dB,可根据实际调整
sound.export(audio_file, format="wav")

3. 指定转写语言参数

如果音频是非英语内容,默认的英语识别逻辑会无法识别有效内容,导致空结果。需在转写时明确指定语言代码:

# 中文示例,其他语言参考对应API文档的语言代码
transcript = transcriber.transcribe(audio_file, language_code="zh")

4. 查看API返回的完整结构

部分情况下,transcript.text可能不是正确的取值字段,或返回对象中包含隐藏的状态信息。可以打印完整的transcript对象排查:

print(transcript)  # 打印完整返回内容,检查status、segments等字段

比如AssemblyAI的返回中,若status为completed但text为空,大概率是音频无有效语音;若status为其他状态,可能存在未捕获的错误提示。

5. 确认文件读取权限与路径

虽然打印了文件路径,但API可能因路径包含特殊字符(如空格、中文)、文件权限不足导致读取失败。可尝试将音频文件移动到简单路径(如./temp_audio.wav)后再测试。


内容的提问来源于stack exchange,提问作者rotu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:10:05