#8713 System Error (22): Invalid argumentTraceback (most recent call last):

104.28**1 Posted at: 8 hours ago

System Error (22): Invalid argument
Traceback (most recent call last):

File "videotrans\task\job.py", line 35, in run

File "videotrans\task\job.py", line 204, in process_task

File "videotrans\task\dubbing.py", line 315, in task_done

File "videotrans\util\_ffmpeg_audio.py", line 289, in remove_silence_wav

File "pydub\audio_segment.py", line 895, in export

File "wave.py", line 432, in writeframesraw

OSError: [Errno 22] Invalid argument
trk=文字配音
self.cfg.name='Z:/0057 字幕/0057.am.srt',
输出目录: Z:/0057 字幕,
self.cfg.cache_folder='D:/TTS/win-pyvideotrans-v4.18-1106/tmp/6892/3c2be7637d'
self.cfg.is_cuda=True
配音渠道:Edge-TTS(免费), 配音角色:Ameha(Male/ET), 目标语言:am
Volume:+0%, Speed:-5%, 已选 配音加速
输出格式: m4a
已选 移除每条字幕配音开头结尾静音缓冲
静音移除力度: default
self.cfg=TaskCfgTTS(uuid='3c2be7637d', name='Z:/0057 字幕/0057.am.srt', dirname='//10.0.0.35/中转/0057 字幕', noextname='0057.am', basename='0057.am.srt', ext='srt', target_dir='Z:/0057 字幕', cache_folder='D:/TTS/win-pyvideotrans-v4.18-1106/tmp/6892/3c2be7637d', is_cuda=True, source_language='', source_language_code='', source_sub=None, source_wav=None, source_wav_output=None, target_language='', target_language_code='am', target_sub='Z:/0057 字幕/0057.am.srt', target_wav='Z:/0057 字幕/0057.am.wav', target_wav_output=None, tts_type=0, volume='+0%', pitch='+0Hz', voice_rate='-5%', voice_role='Ameha(Male/ET)', voice_autorate=True, video_autorate=False, remove_silent_mid=False, align_sub_audio=False)


=
system:Windows-10-10.0.26200-SP0
version:v4.18
frozen:True
language:zh_CN
root_dir:D:/TTS/win-pyvideotrans-v4.18-1106

1 Replies

#1 DeepSeek reply at 8 hours ago

报错并非出在 Edge-TTS 或配音角色本身,而是最后写入 wav 文件的环节失败:remove_silence_wav(移除配音首尾静音)内部调用 pydub/wave 导出音频时,被 Windows 判定为"无效参数"。结合你的日志可以定位两点诱因:

  • 源文件与输出目录都在网络映射盘上:Z:/0057 字幕/ 实际指向 //10.0.0.35/中转/0057 字幕(UNC 网络路径),Python 底层 wave.writeframesraw 向此类路径写文件时极易抛 OSError: [Errno 22] Invalid argument。
  • 路径同时包含中文 + 空格(0057 字幕、0057.am.srt),这正是官方新手注意事项里明确要求避免的(路径过长/含特殊符号会导致 ffmpeg 与写文件操作崩溃)。

处理步骤(按顺序尝试)

  1. 把 0057.am.srt 复制到本地浅层纯英文路径,例如 D:/tts/0057am.srt,输出目录也设为 D:/tts/out,重新执行文字配音。这是最可能一次解决的做法。
  2. 确认 Z: 盘当前未断开、有写权限、剩余空间充足(网络盘映射失效或空间不足同样会报 Errno 22)。若必须用网络盘,先映射为盘符并确认可正常手动新建/写入文件,且路径尽量短、不含空格。
  3. 若暂时无法改路径,可先取消勾选 移除每条字幕配音开头结尾静音缓冲(以及 移除每条字幕配音全部静音缓冲),跳过 remove_silence_wav 这一步,只验证能否正常导出音频,以此确认问题确实出在写文件环节。
  4. 尝试把 输出格式 从 m4a 改为 wav(或反向)再试一次,排除容器封装环节的干扰。
  5. 若改到本地英文短路径后仍报同一错误,请提供 D:/TTS/win-pyvideotrans-v4.18-1106/logs/ 下最新日志文件底部约 30 行内容。

请查阅相关文档:

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Dondate via ko-fi.com

Related resource