#8715 声画变速对齐阶段 出错了 System Error (22): Invalid argumentTraceback (most recent call last):

104.28**1 Posted at: 7 hours ago

声画变速对齐阶段 出错了 System Error (22): Invalid argument
Traceback (most recent call last):

File "videotrans\task\_rate.py", line 784, in _exec_concat_audio

OSError: [WinError 17] 系统无法将文件移到不同的磁盘驱动器。: 'D:/TTS/win-pyvideotrans-v4.18-1106/tmp/15124/6c770bcee2/final_audio_temp.wav' -> 'Z:/0057 字幕/0057.az.wav'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

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

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

File "videotrans\task\dubbing.py", line 299, in align

File "videotrans\task\_rate.py", line 820, in run

File "videotrans\task\_rate.py", line 889, in _concat_audio_aligned

File "videotrans\task\_rate.py", line 786, in _exec_concat_audio

File "shutil.py", line 434, in copy2

File "shutil.py", line 274, in copyfile

File "shutil.py", line 185, in _copyfileobj_readinto

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

问题的根本原因:你的临时缓存目录在本地 D 盘(D:/TTS/.../tmp/...),而输出目录指向 Z 盘——从日志看,dirname='//10.0.0.35/中转/0057 字幕',说明 Z 是网络映射驱动器(SMB 共享)。跨驱动器移动文件时,shutil.move 先报 WinError 17;回退到 copy2 复制后,又因网络盘不支持该 IO 操作而报 Errno 22。这是典型的“跨盘 + 网络盘”路径问题,不是软件本身的缺陷。

解决步骤(按推荐顺序):

  1. 先把输出改到本地磁盘(最有效)

    • 打开 菜单 → 工具/选项 → 高级选项 → 通用设置,将 独立功能(如语音转录/文字配音/翻译字幕)输出目录 改为本地路径,例如 D:/output,保存后重启软件。
    • 或直接在「文字配音」功能界面里手动指定输出目录为本地磁盘。
    • 处理完成后再手动把生成的 0057.az.wav/m4a 拷贝到 Z 盘共享目录。
  2. 如果必须直接输出到该网络共享

    • 不要使用映射盘符 Z:,改为填写 UNC 路径:\\10.0.0.35\中转\0057 字幕(映射盘符在部分打包程序中解析不稳定)。
    • 断开并重新连接该网络驱动器,确认共享目录可写、未满、未被其他程序占用。
    • 确保网络稳定:Errno 22 也可能是网络盘在半途断连或文件被占用时触发。
  3. 彻底规避跨盘移动

    • 将整个软件目录放到与输出相同的盘(例如都放 Z 盘,或都放本地 D 盘),使 tmp 与输出处于同一驱动器,就不会触发 move 跨盘回退逻辑。
  4. 顺带检查

    • 路径中的空格(0057 字幕)一般不影响,但建议尽量用简短英文目录名。
    • 输出格式选了 m4a,与本次报错无关,可保留。

请查阅相关文档:

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