BingLingGroup / autosub

Command-line utility to transcribe/translate from video/audio/subtitles to subtitles
GNU General Public License v2.0
1.98k stars 244 forks source link

There is already a file with the same path or the path isn't valid #143

Closed jitingcn closed 3 years ago

jitingcn commented 3 years ago

确保你已经看过 readme,也搜索并阅读过和你遇到的情况相关的问题。否则会被认为是重复的并被立刻关闭。

描述问题 无效的重复文件提示(当前目录下并没有重复的文件),并且控制台无法输入任何字符,ctrl+c 退出不产生任何错误信息

复现问题 复现问题的步骤:

autosub -i "Week 2 Video.mp4" -S en-GB
翻译目的语言未提供。只进行语音识别。
因为你其他参数输入得太少了,忽略"-of"/"--output-files"参数。
只输出源语言字幕文件。

将源文件转换为"/tmp/tmp7uxb70xc.wav"来检测语音区域。
/usr/sbin/ffmpeg -hide_banner -y -i "Week 2 Video.mp4" -vn -ac 1 -ar 48000 -loglevel error "/tmp/tmp7uxb70xc.wav"

使用ffprobe来检查转换结果。
/usr/sbin/ffprobe "/tmp/tmp7uxb70xc.wav" -show_format -pretty -loglevel quiet
[FORMAT]
filename=/tmp/tmp7uxb70xc.wav
nb_streams=1
nb_programs=0
format_name=wav
format_long_name=WAV / WAVE (Waveform Audio)
start_time=N/A
duration=0:20:54.458063
size=114.849167 Mibyte
bit_rate=768 Kbit/s
probe_score=99
TAG:title=2_team_organisation
TAG:encoder=Lavf58.45.100
[/FORMAT]

转换完毕。
使用Auditok检测语音区域。
Auditok detection completed.
"/tmp/tmp7uxb70xc.wav" has been deleted.

按照语音区域将音频转换为多个短语音片段。
转换中: N/A% |                                                                                            | ETA:  --:--转换中:   1% |#                                                                                           | ETA:   0:00转换中:   6% |######                                                                                      | ETA:   0:00转换中:  13% |############                                                                                | ETA:   0:00转换中:  18% |#################                                                                           | ETA:   0:00转换中:  25% |#######################                                                                     | ETA:   0:00转换中:  30% |###########################                                                                 | ETA:   0:00转换中:  34% |################################                                                            | ETA:   0:00转换中:  40% |#####################################                                                       | ETA:   0:00转换中:  45% |#########################################                                                   | ETA:   0:00转换中:  51% |##############################################                                              | ETA:   0:00转换中:  55% |###################################################                                         | ETA:   0:00转换中:  61% |########################################################                                    | ETA:   0:00转换中:  67% |##############################################################                              | ETA:   0:00转换中:  72% |##################################################################                          | ETA:   0:00转换中:  78% |########################################################################                    | ETA:   0:00转换中:  84% |#############################################################################               | ETA:   0:00转换中:  89% |##################################################################################          | ETA:   0:00转换中:  95% |#######################################################################################     | ETA:   0:00转换中: 100% |############################################################################################| Time:  0:00:01

将短片段语音发送给Google Speech V2 API并得到识别结果。
语音转文字中: N/A% |                                                                                         | ETA:  --语音转文字中: N/A% |                                                                                         | ETA:  --语音转文字中:   1% |#                                                                                        | ETA:   0语音转文字中:   5% |####                                                                                     | ETA:   0语音转文字中:   6% |######                                                                                   | ETA:   0语音转文字中:   9% |########                                                                                 | ETA:   0语音转文字中:  11% |#########                                                                                | ETA:   0语音转文字中:  11% |##########                                                                               | ETA:   0语音转文字中:  13% |###########                                                                              | ETA:   0语音转文字中:  15% |#############                                                                            | ETA:   0语音转文字中:  17% |###############                                                                          | ETA:   0语音转文字中:  18% |################                                                                         | ETA:   0语音转文字中:  20% |##################                                                                       | ETA:   0语音转文字中:  21% |###################                                                                      | ETA:   0语音转文字中:  22% |###################                                                                      | ETA:   0语音转文字中:  23% |####################                                                                     | ETA:   0语音转文字中:  23% |#####################                                                                    | ETA:   0语音转文字中:  25% |#######################                                                                  | ETA:   0语音转文字中:  26% |#######################                                                                  | ETA:   0语音转文字中:  27% |########################                                                                 | ETA:   0语音转文字中:  31% |############################                                                             | ETA:   0语音转文字中:  33% |#############################                                                            | ETA:   0语音转文字中:  34% |###############################                                                          | ETA:   0语音转文字中:  38% |##################################                                                       | ETA:   0语音转文字中:  40% |####################################                                                     | ETA:   0语音转文字中:  41% |####################################                                                     | ETA:   0语音转文字中:  46% |#########################################                                                | ETA:   0语音转文字中:  46% |#########################################                                                | ETA:   0语音转文字中:  47% |##########################################                                               | ETA:   0语音转文字中:  51% |##############################################                                           | ETA:   0语音转文字中:  53% |###############################################                                          | ETA:   0语音转文字中:  55% |#################################################                                        | ETA:   0语音转文字中:  59% |####################################################                                     | ETA:   0语音转文字中:  60% |######################################################                                   | ETA:   0语音转文字中:  61% |######################################################                                   | ETA:   0语音转文字中:  62% |#######################################################                                  | ETA:   0语音转文字中:  63% |########################################################                                 | ETA:   0语音转文字中:  64% |#########################################################                                | ETA:   0语音转文字中:  69% |#############################################################                            | ETA:   0语音转文字中:  69% |##############################################################                           | ETA:   0语音转文字中:  76% |###################################################################                      | ETA:   0语音转文字中:  80% |#######################################################################                  | ETA:   0语音转文字中:  81% |########################################################################                 | ETA:   0语音转文字中:  84% |###########################################################################              | ETA:   0语音转文字中:  86% |############################################################################             | ETA:   0语音转文字中:  86% |#############################################################################            | ETA:   0语音转文字中:  90% |################################################################################         | ETA:   0语音转文字中:  91% |#################################################################################        | ETA:   0语音转文字中:  93% |##################################################################################       | ETA:   0语音转文字中:  95% |#####################################################################################    | ETA:   0语音转文字中:  97% |######################################################################################   | ETA:   0语音转文字中:  97% |#######################################################################################  | ETA:   0语音转文字中: 100% |#########################################################################################| Time:  0:00:11
There is already a file with the same path or the path isn't valid: "Week 2 Video.en-gb.srt".
Input a new path (including directory and file name) for output file.

期待的行为

  1. 不应出现重复文件名提示,直接生成目标文件
  2. 解决无法输入文件名的问题

截图 合适的话可以提供用以描述问题的截图。但是不推荐用截图来展示命令行输出,除非你真的认为这很有必要。 image

操作环境(请提供以下完整数据):

额外信息(可选) 任何其他的能描述问题的信息。

BingLingGroup commented 3 years ago

写入文件相关的方法在 https://github.com/BingLingGroup/autosub/blob/dev/autosub/sub_utils.py#L31-L55

关于问题:

关于期待的行为:

  1. 你可以使用-y选项,强制覆写,这样就不会进行提示
  2. 同上
BingLingGroup commented 3 years ago

抱歉刚才说错了(如果没看到我删掉的那一层就无视掉)

主要问题出在要判断用户输入的路径是否合法,如果用户输入的路径是无效的,比如父路径不存在,那么就需要那个判断条件判断父路径是否存在,否则走到下面应该会异常。

其实加个父路径如果不存在一律按照当前(相对)路径处理就好了,问题不大,我改下代码。

BingLingGroup commented 3 years ago

~抱歉刚才说错了(如果没看到我删掉的那一层就无视掉)~

主要问题出在要判断用户输入的路径是否合法,如果用户输入的路径是无效的,比如父路径不存在,那么就需要那个判断条件判断父路径是否存在,否则走到下面应该会异常。

其实加个父路径如果不存在一律按照当前(相对)路径处理就好了,问题不大,我改下代码。

https://github.com/BingLingGroup/autosub/commit/ff0f6ba0db2034e34876db520a6c249a3939f0c2 这个提交理论上已经修复了这个问题,至于不能输入的问题我还没头绪

jitingcn commented 3 years ago

经过测试,不能输入的原因可能是 autosub 不正常退出,导致终端出现错误,使用 stty sane 可以恢复正常,但导致出错的原因暂时未知 另外测试的时候还发现,当输入错误的时候 autosub 退出时没有返回错误值,导致 CI 仍可以正常通过,可能需要添加退出码

另外现在效果识别好像有点差(

jitingcn commented 3 years ago
def main():
        ...
        raise exceptions.AutosubException(_("\nAll works done."))
    except exceptions.AutosubException as err_msg:
        print(err_msg)
    return 0

为什么使用 raise exceptions.AutosubException 来处理所有的提示? 这河里吗?.jpg 不管发生了什么错误都会 return 0 退出

BingLingGroup commented 3 years ago

这布盒里,我瞎写的ORZ

jitingcn commented 3 years ago

能否给个联系方式方便交流?discord,telegram都可以