Ayanaminn / N46Whisper

Whisper based Japanese subtitle generator
MIT License
1.56k stars 128 forks source link

和WhisperDesktop的对比及一点想法 #47

Open souvenp opened 1 year ago

souvenp commented 1 year ago

N46: なんて言ったらいいんだろう 約束だよ これさすがノーマルでしょ? 私アメリカン…あ、今はクルーザーって言うんだっけ? whisperdesktop: ああ… なんて言ったらいいんだろう 約束…だよ これ さすがノーマルでしょ? 私 アメリカ… あ 今はクルザって言うんだっけ?

whisperdesktop(用的新的ggmlv2模型)的结果会显示背景音、语气词、停顿,不过它的时间轴有大问题,语音结束立刻会到下一句 N46时间轴没有问题,不会显示背景音和语气词,停顿空格也几乎没有,我用的v1模型,因为v2模型没有标点符号 什么原因导致的呢?优点能结合起来就完美了

souvenp commented 1 year ago

另外我有一个想法,普通gpt号好像就3个请求每分钟,可以尝试把文本集中起来翻译完成后再组装上去🤔

souvenp commented 1 year ago

目前的谷歌加载文件没法显示共享文件夹 清缓存有个时间,稍微改了下,


memory_allocated = torch.cuda.max_memory_allocated()
print(end_memory_allocated)
threshold = 8e9  # 8 GB
flag=False
while(memory_allocated < threshold):
       if(flag):
          break
       print('加载模型 Loading model...')
       torch.cuda.empty_cache()
       model = WhisperModel(model_size)
       flag=True
       memory_allocated = torch.cuda.max_memory_allocated()
41889732 commented 1 year ago

另外我有一个想法,普通gpt号好像就3个请求每分钟,可以尝试把文本集中起来翻译完成后再组装上去🤔

我在尝试实现这个功能,但是目前的问题是翻译多句话后gpt的回复格式可能不是很稳定,再分割成单句容易出问题,还需要调prompt,不知道这个功能是否需要pr?

Ayanaminn commented 1 year ago

whisperdesktop(用的新的ggmlv2模型)的结果会显示背景音、语气词、停顿,不过它的时间轴有大问题,语音结束立刻会到下一句 N46时间轴没有问题,不会显示背景音和语气词,停顿空格也几乎没有,我用的v1模型,因为v2模型没有标点符号 什么原因导致的呢?优点能结合起来就完美了

我不太懂WhisperDesktop具体C++是怎么实现的, 也不太清楚他默认参数

但是有可能是和beam size这个参数有关, 在换成faster-whisper之后我把这个参数定explicitly固定成5了。

The default beam size is 5 when using the whisper command line, but not when calling the model.transcribe method. Here the beam size defaults to None which means that greedy decoding is used.

Ayanaminn commented 1 year ago

另外我有一个想法,普通gpt号好像就3个请求每分钟,可以尝试把文本集中起来翻译完成后再组装上去🤔

我在尝试实现这个功能,但是目前的问题是翻译多句话后gpt的回复格式可能不是很稳定,再分割成单句容易出问题,还需要调prompt,不知道这个功能是否需要pr?

那太好了,可以请你先提一个? 我最近也想再优化一下翻译部分,除了改一下prompt,目前的想法是让用户自己决定按多少句分块,然后分别翻译每块最后统一输出。

souvenp commented 1 year ago

s="""はい到着 ここを一人でお散歩する時必ず寄ってるんだ### 岩もちょうどいい形と高さで 座りやすいでしょ### お母さんに教えてもらった場所なの 初めて連れてきてもらってから### すっかりお気に入りになっちゃった で今度は私が連れて行く番になって### 妹たちがまだちっちゃかった頃は 必ずここまで一緒に散歩しに来てたんだよ### """ 我发现每一句末尾加个标志就能稳定格式了,15次循环都能输出单独五行出来,不过有时会这样: 嗯,到了。我自己一個散步時一定會來這裡### 這石頭的形狀和高度很適合坐呢### 這是媽媽告訴我的地方,自從第一次被帶來後### 我就待在這裡成為自己最喜愛的地方### 當我妹妹們還很小的時候,我也必定會帶她們一起走到這裡呢。###

好的,到达了。每次一个人散步的时候都一定会来这里###

岩石的形状和高度都非常适合坐下来休息###

这是母亲教我的地方。从第一次被带来以来###

我已经完全喜欢上这个地方了,现在轮到我带他人来了###

妹妹们还很小的时候,我们总是一起散步来到这里呢### 后面处理一下字符串就行,这个问题不大。 循环输出五次效果

Ayanaminn commented 1 year ago

我刚做了个小更新,现在可以输入自己的prompt, 也可以调节temperature

temperature影响很大,可以自由改变比较好

temperature最大值是1.0吧?我感觉设的太高也不好。

souvenp commented 1 year ago

我刚做了个小更新,现在可以输入自己的prompt, 也可以调节temperature

temperature影响很大,可以自由改变比较好

temperature最大值是1.0吧?我感觉设的太高也不好。

是0-2,低点的话变化比较少,看个人喜好把

41889732 commented 1 year ago

我刚做了个小更新,现在可以输入自己的prompt, 也可以调节temperature

temperature影响很大,可以自由改变比较好

temperature最大值是1.0吧?我感觉设的太高也不好。

我提了一个pr,不过似乎是基于你最新一次更新前的版本?我感觉是不是没有必要每一次对话都重新发送prompt。 之前我尝试用特殊符号进行分割,轮次多了遇到过几句话塞到一起的情况,后来换成了数字序号(1):这样,不知道效果会不会更强一点。 字数上限的话应该也是可调的,我自己感觉每次发送1600内的字符一般不会超过token数限制。

Ayanaminn commented 1 year ago

我刚做了个小更新,现在可以输入自己的prompt, 也可以调节temperature

temperature影响很大,可以自由改变比较好

temperature最大值是1.0吧?我感觉设的太高也不好。

我提了一个pr,不过似乎是基于你最新一次更新前的版本?我感觉是不是没有必要每一次对话都重新发送prompt。 之前我尝试用特殊符号进行分割,轮次多了遇到过几句话塞到一起的情况,后来换成了数字序号(1):这样,不知道效果会不会更强一点。 字数上限的话应该也是可调的,我自己感觉每次发送1600内的字符一般不会超过token数限制。

嗯嗯,等我之后抽时间看了就合并一下