ly

Month: 2023-05

2023-05-17

ronnywang 16:04:17
我想做一個功能,就是只要讓大家在自己電腦上跑一隻程式,他會自動去抓 https://ivod.ly.gov.tw/ 上面的最新影片或是還沒人處理的影片,然後在 local 本機用 Whisper 把他轉成逐字稿之後,再把他傳到雲端,這樣子可以讓 ivod 的逐字稿可以盡快出來,不用等到公報出來才看的到,讓大家想要抓關鍵字來看質詢可以更快
ronnywang 16:04:17
我想做一個功能,就是只要讓大家在自己電腦上跑一隻程式,他會自動去抓 https://ivod.ly.gov.tw/ 上面的最新影片或是還沒人處理的影片,然後在 local 本機用 Whisper API 把他轉成逐字稿之後,再把他傳到雲端,這樣子可以讓 ivod 的逐字稿可以盡快出來,不用等到公報出來才看的到,讓大家想要抓關鍵字來看質詢可以更快
ronnywang 16:05:10
這樣可以省去用 Whisper API 的錢,Whisper API 跑大量資料還是有點貴
ronnywang 16:05:10
這樣可以省去用 Whisper API 的錢,Whisper API 跑大量資料還是有點貴
ronnywang 16:09:59
https://github.com/openai/whisper 目前這個應該是開源可用的,model 應該也是公開可用?

openai/whisper

Robust Speech Recognition via Large-Scale Weak Supervision

MIT License
ronnywang 16:09:59
https://github.com/openai/whisper 目前這個應該是開源可用的,model 應該也是公開可用?
MIT License
ronnywang 16:35:58
https://github.com/ggerganov/whisper.cpp 這個可以直接用
我試著把 large 裝起來,在 8 gb 記憶體的 MacBook pro m1 跑得動,但是有點喘 XD ,不過還沒測試文件提到的加速組合
ronnywang 16:35:58
https://github.com/ggerganov/whisper.cpp 這個可以直接用

ggerganov/whisper.cpp

Port of OpenAI's Whisper model in C/C++

我試著把 large 裝起來,在 8 gb 記憶體的 MacBook pro m1 跑得動,但是有點喘 XD ,不過還沒測試文件提到的加速組合
ronnywang 16:46:50
whisper.cpp 這個速度好快,我剛剛轉一隻 8min 的影片,只轉 20 秒就轉完了
input: https://ivod.ly.gov.tw/Play/Clip/1M/146296
output: https://gist.github.com/ronnywang/5d0a384e31c73556d6e33babc56a7b0e
ronnywang 16:46:50
whisper.cpp 這個速度好快,我剛剛轉一隻 8min 的影片,只轉 20 秒就轉完了
input: https://ivod.ly.gov.tw/Play/Clip/1M/146296
output: https://gist.github.com/ronnywang/5d0a384e31c73556d6e33babc56a7b0e
😮 2 👍 1
ronnywang 16:47:05
用的是我自己的 macbook air
ronnywang 16:47:05
用的是我自己的 macbook air
kiang 20:34:38
目前試用的感覺, Google colab 免費版跑最大的模型都還跑的動
https://youtu.be/IkAcbMhjM3s
kiang 20:34:38
目前試用的感覺, Google colab 免費版跑最大的模型都還跑的動
https://youtu.be/IkAcbMhjM3s

YouTube

透過 Whisper + Google Colab 為 YouTube 影片自動上字幕

kiang 20:38:34
不過沒想到 C/C++ 改寫的版本可以這麼快,大概可以直接放一台去跑所有的吧 XD
kiang 20:38:34
不過沒想到 C/C++ 改寫的版本可以這麼快,大概可以直接放一台去跑所有的吧 XD
ronnywang 20:39:19
不過我剛是用 base model ,base model 還是有點不太夠,如果用 medium 就會比較久了
ronnywang 20:39:19
不過我剛是用 base model ,base model 還是有點不太夠,如果用 medium 就會比較久了
kiang 20:42:01
google colab 跑一個小時的影片大概 5-10 分鐘左右,使用最大的模型,第一次載入比較久,因為要載入模型,後面就快很多,我有拿企鵝妹那個直播記錄的 12 小時影片測試過都可以順利跑完,只是也要跑一段時間
kiang 20:42:01
google colab 跑一個小時的影片大概 5-10 分鐘左右,使用最大的模型,第一次載入比較久,因為要載入模型,後面就快很多,我有拿企鵝妹那個直播記錄的 12 小時影片測試過都可以順利跑完,只是也要跑一段時間
kiang 20:45:53
google colab 或 hugging face 都可以快速生出主機來跑 whisper , google colab 免費的版本給的資源就相當多, hugging face 免費版跑不太動,但基本上都可以花錢買更多資源
kiang 20:45:53
google colab 或 hugging face 都可以快速生出主機來跑 whisper , google colab 免費的版本給的資源就相當多, hugging face 免費版跑不太動,但基本上都可以花錢買更多資源
kiang 20:46:59
目前跑過十幾個影片,有時候字幕的時間會對不太到,但如果只是生出逐字不會有太大困擾,另外就是國語以外的辨識度都很差,像是台語就一堆錯字
kiang 20:46:59
目前跑過十幾個影片,有時候字幕的時間會對不太到,但如果只是生出逐字不會有太大困擾,另外就是國語以外的辨識度都很差,像是台語就一堆錯字
kiang 20:54:43
之前有想過,如果把過去 ivod 備份到 youtube 的程式復活,然後自動化跑完語音轉文字後自動上字幕,同時把逐字丟到 github 之類的應該很有趣 (就出張嘴 XD
kiang 20:54:43
之前有想過,如果把過去 ivod 備份到 youtube 的程式復活,然後自動化跑完語音轉文字後自動上字幕,同時把逐字丟到 github 之類的應該很有趣 (就出張嘴 XD

2023-05-18

ronnywang 07:40:14
https://github.com/ronnywang/ivod-transcript/tree/main/output/20230517
用我的 Macbook Air 慢慢來處理 ivod 的逐字稿,目前看起來可能跑一天可以處理四五天的量(只要 Mac 不要跑到螢幕關閉就好,螢幕關閉後速度會變超慢)
我來用自己電腦產生穩定產生 ivod 逐字稿吧
ronnywang 07:40:14
https://github.com/ronnywang/ivod-transcript/tree/main/output/20230517
用我的 Macbook Air 慢慢來處理 ivod 的逐字稿,目前看起來可能跑一天可以處理四五天的量(只要 Mac 不要跑到螢幕關閉就好,螢幕關閉後速度會變超慢)
我來用自己電腦產生穩定產生 ivod 逐字稿吧
1
ronnywang 13:39:09
剛剛突然有個想法,可以開一個 discord 或是 slack workspace ,幫每個立法委員跟每個法案都開一個 channel ,可以加入感興趣的立法委員或是法案頻道,然後如果當天該法案有人提草案或是有人討論,就即時通知,立法委員有在 ivod 發言,也可以即時通知,可以把 ivod 經過 whisper 的逐字稿貼上去,然後再透過 GAI 來做摘要
ronnywang 13:39:09
剛剛突然有個想法,可以開一個 discord 或是 slack workspace ,幫每個立法委員跟每個法案都開一個 channel ,可以加入感興趣的立法委員或是法案頻道,然後如果當天該法案有人提草案或是有人討論,就即時通知,立法委員有在 ivod 發言,也可以即時通知,可以把 ivod 經過 whisper 的逐字稿貼上去,然後再透過 GAI 來做摘要
😯 2
ronnywang 13:43:39
面海松來提案這做個好了 XD
ronnywang 13:43:39
面海松來提案這做個好了 XD
1
ronnywang 15:06:32
https://ivod.ly.gov.tw/Play/Clip/1M/146168
這隻影片用 medium model 會轉出只有 「(主席先讓主委喝口水)」一直 loop XD
```[00:00:28.000 --> 00:00:47.000] (主席先讓主委喝口水)
[00:00:47.000 --> 00:01:15.000] (主席先讓主委喝口水)
[00:01:15.000 --> 00:01:43.000] (主席先讓主委喝口水)
[00:01:43.000 --> 00:01:59.000] (主席先讓主委喝口水)
[00:01:59.000 --> 00:02:17.000] (主席先讓主委喝口水)
[00:02:17.000 --> 00:02:43.000] (主席先讓主委喝口水)
[00:02:43.000 --> 00:03:10.000] (主席先讓主委喝口水)
[00:03:10.000 --> 00:03:30.000] (主席先讓主委喝口水)
[00:03:30.000 --> 00:03:49.000] (主席先讓主委喝口水)
[00:03:49.000 --> 00:04:16.000] (主席先讓主委喝口水)```
在其他地方也遇到同樣問題,可能 python 版本已經解決了
試著比較了一下, cpp 版本使用 large 模型遇到的 loop ,在上述 colab 所使用的 python 版本與 large-v2 模型就不會出現,不知道直接使用新模型會不會改善問題
ronnywang 15:06:32
https://ivod.ly.gov.tw/Play/Clip/1M/146168
這隻影片用 medium model 會轉出只有 「(主席先讓主委喝口水)」一直 loop XD
```[00:00:28.000 --> 00:00:47.000] (主席先讓主委喝口水)
[00:00:47.000 --> 00:01:15.000] (主席先讓主委喝口水)
[00:01:15.000 --> 00:01:43.000] (主席先讓主委喝口水)
[00:01:43.000 --> 00:01:59.000] (主席先讓主委喝口水)
[00:01:59.000 --> 00:02:17.000] (主席先讓主委喝口水)
[00:02:17.000 --> 00:02:43.000] (主席先讓主委喝口水)
[00:02:43.000 --> 00:03:10.000] (主席先讓主委喝口水)
[00:03:10.000 --> 00:03:30.000] (主席先讓主委喝口水)
[00:03:30.000 --> 00:03:49.000] (主席先讓主委喝口水)
[00:03:49.000 --> 00:04:16.000] (主席先讓主委喝口水)```
在其他地方也遇到同樣問題,可能 python 版本已經解決了
試著比較了一下, cpp 版本使用 large 模型遇到的 loop ,在上述 colab 所使用的 python 版本與 large-v2 模型就不會出現,不知道直接使用新模型會不會改善問題
kiang 17:24:36
話說不知道當初 https://www.youtube.com/@ivod4575 是誰做的
pofeng (ocf) 2023-05-21 00:56:46
印象是 kcwu 轉交給公督盟上傳
應該是程式自動上傳,只是找不到當初使用的程式
@kcwu 呼喚一下 XD
kiang 17:24:36
話說不知道當初 https://www.youtube.com/@ivod4575 是誰做的

YouTube

公督盟ivod

立法院議事影音紀錄,由 <http://g0v.tw|g0v.tw> 零時政府 (<http://g0v.tw/>) 上傳。 原始影音網站:<http://ivod.ly.gov.tw/>

pofeng (ocf) 2023-05-21 00:56:46
印象是 kcwu 轉交給公督盟上傳
應該是程式自動上傳,只是找不到當初使用的程式
@kcwu 呼喚一下 XD
💡 1

2023-05-19

2023-05-21

pofeng (ocf) 00:56:05
@pofeng240 has joined the channel
pofeng (ocf) 00:56:46
印象是 kcwu 轉交給公督盟上傳

2023-05-22

ronnywang 14:54:48
https://join.slack.com/t/slack-ldv9484/shared_invite/zt-1vpghq9fl-2HrU8Pgk_veHTnHQlzTFlg
「台灣國會觀察家」測試中,歡迎大家進來幫忙看看給給意見 XD
ronnywang 14:54:48
https://join.slack.com/t/slack-ldv9484/shared_invite/zt-1vpghq9fl-2HrU8Pgk_veHTnHQlzTFlg
「台灣國會觀察家」測試中,歡迎大家進來幫忙看看給給意見 XD
pofeng (ocf) 17:24:42
@ronnywang 你有抓到這段的逐字稿嗎 ? (或影音)
image.png
ronnywang 17:37:37
@pofeng240 ivod 好像都是以委員發言為單位,官員自己主動報告的好像沒有?
ronnywang 17:37:37
@pofeng240 ivod 好像都是以委員發言為單位,官員自己主動報告的好像沒有?
ronnywang 17:38:48
喔喔,有完整影片
ronnywang 17:38:48
喔喔,有完整影片
ronnywang 17:39:40
那我來處理這整段逐字稿好了
ronnywang 17:39:40
那我來處理這整段逐字稿好了
pofeng (ocf) 17:42:15
怎樣抓 ivod 影音檔啊 ?
pofeng (ocf) 17:42:15
怎樣抓 ivod 影音檔啊 ?
ronnywang 17:57:51
從裡面的 HTML 找到 readyPlayer 裡面有個很長的 playlist.m3u8 網址,把這串網址用 youtube-dl “xxx” 下載就可以了
👍 1 2
ronnywang 17:57:51
從裡面的 HTML 找到 readyPlayer 裡面有個很長的 playlist.m3u8 網址,把這串網址用 youtube-dl “xxx” 下載就可以了
kiang 23:22:51
我用 colab + python 轉出來的版本,可以比較看看
https://gist.github.com/kiang/4a6cd6ce9421c45eda7d3e5fde8a10cf
kiang 23:22:51
我用 colab + python 轉出來的版本,可以比較看看
https://gist.github.com/kiang/4a6cd6ce9421c45eda7d3e5fde8a10cf
kiang 23:29:33
話說這個真的快很多
https://huggingface.co/spaces/aadnk/faster-whisper-webui

huggingface.co

Faster Whisper Webui - a Hugging Face Space by aadnk

Discover amazing ML apps made by the community

1
kiang 23:30:25
只是沒有特別去比較產出差異,只是基本上都還是比 cpp 版本品質好一點 XD
kiang 23:30:25
只是沒有特別去比較產出差異,只是基本上都還是比 cpp 版本品質好一點 XD

2023-05-23

kiang 00:11:41
影片加字幕
https://youtu.be/tcuBf7LeS2s
ronnywang 11:42:42
啊啊,原來 Azure 增加信用卡後會送 200USD 要在 30 天內用完,本來想說省點成本只抽 10 個立委來摘要他們講的內容,現在看起來應該趁這 30 天好好花這 200USD XD ,那我要把最近抓的逐字稿全部摘要一遍看看了
對咒語調校有興趣!可以伸幾個逐字稿素材嗎 XD

在想如果更明確指出想摘要的向度的話,或許會更有效,但要實驗看看就是。
現在的摘要成果我還沒做成網頁展示,可以加入 https://join.slack.com/t/slack-ldv9484/shared_invite/zt-1vpghq9fl-2HrU8Pgk_veHTnHQlzTFlg 我把摘要全部分散到不同的立委 channel 了
目前有遇到幾個問題
1. 有些十分鐘的逐字稿會超過 4096 個 token 的限制,就算沒超過,因為 4096 token 也包含回應,因此回應會被中斷,因此我現在統一都先把逐字稿砍掉剩 2000 個全型字再送去摘要,因此可能摘要的不完整
2. 我想要有 hashtag 可以整理這主題以便之後分類,不過他的 hashtag 還是很常不給或不照我要的格式給
GPT 日常 XD
https://github.com/ronnywang/congress-watch/blob/main/init.inc.php#L131
下咒語的程式放在這,有做 temperature=0 想說讓他穩定一點
針對這則,我覺得有給方向,有比較清楚!方向可以再調就是,也稍微處理一下輸出格式的問題。

我也因為太長,所以分成兩半, prompt 都是:

```你是國會線記者,請針對以下立委質詢政府部門的紀錄:

1. 提供摘要,針對政策的批評、建議與解方,一百字以內,以字串表示
2. 列出最相關的三個關鍵字,以陣列表示

並將結果整理為 key 為 summary, keywords 的 json object
質詢內容 is delimited with triple backticks

```{質詢內容}``````

---
現在 slack 的版本:

[2023-05-22 11:17:41 - 11:25:45 @ 立法院第10屆第7會期交通委員會第11次全體委員會議]
這場國會交流中,委員抱怨自己的社交媒體帳號被盜用,並指出許多名人也遭受同樣的問題。委員批評政府在打擊詐騙方面的表現不佳,並質疑政府花費13億元打擊詐騙的效果不彰。委員呼籲政府應該在事前加強審查,防止詐騙廣告登上平台,並提高平台的責任。此外,委員也提到自己的telegram帳號被盜用,並批評政府沒有提供有效的解決方案。#詐騙 #社交媒體 #政府效能
https://ivod.ly.gov.tw/Play/Clip/1M/146416


---
上述 prompt 的版本:

```{
"summary": "針對詐騙橫行及個資外洩問題,建議應該在事前加強審查,特別是投資詐騙廣告,應該要有金管會的認證,否則不應該讓其登廣告。此外,平台也應該負起連帶責任,政府部門應該加強資安相關研究,找出問題的責任所在。",
"keywords": ["詐騙橫行", "個資外洩", "金管會"]
}```
```{
"summary": "立委質詢政府部門對於防詐騙措施的不足,政府花費13億元的預算,但KPI標準低,只要求提高5%的防堵率,且政府對於個人被盜用的通訊軟體帳號沒有提供足夠的協助,需要政府更積極地告知民眾防範措施。",
"keywords": ["防詐騙", "政府預算", "個人資訊安全"]
}```
但有聽說就算指定輸出格式, GPT 也不一定會聽話 XD

這是 gpt-3.5 + temp = 0
喔喔喔~讚,這樣我有點想重跑一次所有的逐字稿 XD
hashtag 應該只能先建好分類,給 GPT 選,或是把 GPT 給的分類,再跑一次 GPT 整理出統一的分類之類 XD
ronnywang 11:42:42
啊啊,原來 Azure 增加信用卡後會送 200USD 要在 30 天內用完,本來想說省點成本只抽 10 個立委來摘要他們講的內容,現在看起來應該趁這 30 天好好花這 200USD XD ,那我要把最近抓的逐字稿全部摘要一遍看看了
對咒語調校有興趣!可以伸幾個逐字稿素材嗎 XD

在想如果更明確指出想摘要的向度的話,或許會更有效,但要實驗看看就是。
現在的摘要成果我還沒做成網頁展示,可以加入 https://join.slack.com/t/slack-ldv9484/shared_invite/zt-1vpghq9fl-2HrU8Pgk_veHTnHQlzTFlg 我把摘要全部分散到不同的立委 channel 了
目前有遇到幾個問題
1. 有些十分鐘的逐字稿會超過 4096 個 token 的限制,就算沒超過,因為 4096 token 也包含回應,因此回應會被中斷,因此我現在統一都先把逐字稿砍掉剩 2000 個全型字再送去摘要,因此可能摘要的不完整
2. 我想要有 hashtag 可以整理這主題以便之後分類,不過他的 hashtag 還是很常不給或不照我要的格式給
GPT 日常 XD
https://github.com/ronnywang/congress-watch/blob/main/init.inc.php#L131
下咒語的程式放在這,有做 temperature=0 想說讓他穩定一點
針對這則,我覺得有給方向,有比較清楚!方向可以再調就是,也稍微處理一下輸出格式的問題。

我也因為太長,所以分成兩半, prompt 都是:

```你是國會線記者,請針對以下立委質詢政府部門的紀錄:

1. 提供摘要,針對政策的批評、建議與解方,一百字以內,以字串表示
2. 列出最相關的三個關鍵字,以陣列表示

並將結果整理為 key 為 summary, keywords 的 json object
質詢內容 is delimited with triple backticks

```{質詢內容}``````

---
現在 slack 的版本:

[2023-05-22 11:17:41 - 11:25:45 @ 立法院第10屆第7會期交通委員會第11次全體委員會議]
這場國會交流中,委員抱怨自己的社交媒體帳號被盜用,並指出許多名人也遭受同樣的問題。委員批評政府在打擊詐騙方面的表現不佳,並質疑政府花費13億元打擊詐騙的效果不彰。委員呼籲政府應該在事前加強審查,防止詐騙廣告登上平台,並提高平台的責任。此外,委員也提到自己的telegram帳號被盜用,並批評政府沒有提供有效的解決方案。#詐騙 #社交媒體 #政府效能
https://ivod.ly.gov.tw/Play/Clip/1M/146416


---
上述 prompt 的版本:

```{
"summary": "針對詐騙橫行及個資外洩問題,建議應該在事前加強審查,特別是投資詐騙廣告,應該要有金管會的認證,否則不應該讓其登廣告。此外,平台也應該負起連帶責任,政府部門應該加強資安相關研究,找出問題的責任所在。",
"keywords": ["詐騙橫行", "個資外洩", "金管會"]
}```
```{
"summary": "立委質詢政府部門對於防詐騙措施的不足,政府花費13億元的預算,但KPI標準低,只要求提高5%的防堵率,且政府對於個人被盜用的通訊軟體帳號沒有提供足夠的協助,需要政府更積極地告知民眾防範措施。",
"keywords": ["防詐騙", "政府預算", "個人資訊安全"]
}```
但有聽說就算指定輸出格式, GPT 也不一定會聽話 XD

這是 gpt-3.5 + temp = 0
喔喔喔~讚,這樣我有點想重跑一次所有的逐字稿 XD
hashtag 應該只能先建好分類,給 GPT 選,或是把 GPT 給的分類,再跑一次 GPT 整理出統一的分類之類 XD
ronnywang 11:43:40
我現在用的咒語是「請幫我以 100 字摘要以下內容,並且以 「#關鍵字」 的型式列出最多三個重要的關鍵字:」,也請大家幫我多測試多看看有沒有更好的咒語 XD
ronnywang 11:43:40
我現在用的咒語是「請幫我以 100 字摘要以下內容,並且以 「#關鍵字」 的型式列出最多三個重要的關鍵字:」,也請大家幫我多測試多看看有沒有更好的咒語 XD

2023-05-25

ronnywang 15:03:15
目前 whisper 可以導入 live stream 嗎?讓他邊 stream 邊出逐字稿?
假如速度可以到 1:1 的話,感覺在面海松時可以用到,讓講者可以講本國語言,然後字幕可以同時出來即時翻譯英文、漢語、日文、韓文
ronnywang 15:03:15
目前 whisper 可以導入 live stream 嗎?讓他邊 stream 邊出逐字稿?
假如速度可以到 1:1 的話,感覺在面海松時可以用到,讓講者可以講本國語言,然後字幕可以同時出來即時翻譯英文、漢語、日文、韓文
ronnywang 15:22:19
揪松有電競筆電,顯卡是GTX1660,不知道跑 whisper 效率如何,下週我可能會去揪松辦公室實驗看看
ronnywang 15:22:19
揪松有電競筆電,顯卡是GTX1660,不知道跑 whisper 效率如何,下週我可能會去揪松辦公室實驗看看
2
kiang 16:52:06
沒玩過,但看起來有人在踹
https://github.com/davabase/whisper_real_time
kiang 16:52:06
沒玩過,但看起來有人在踹
https://github.com/davabase/whisper_real_time

davabase/whisper_real_time

Real time transcription with OpenAI Whisper.

2023-05-30

ronnywang 16:17:58
咦,我用揪松筆電的 GTX1660 用 whisper 的速度比我自己的 M1 Macbook Air 慢好多,這是正常的嗎?我看工作管理員應該是有用到 GPU 沒錯
ronnywang 16:17:58
咦,我用揪松筆電的 GTX1660 用 whisper 的速度比我自己的 M1 Macbook Air 慢好多,這是正常的嗎?我看工作管理員應該是有用到 GPU 沒錯
ronnywang 16:20:20
還是揪松筆電的 GPU 已經太舊了 XD
ronnywang 16:20:20
還是揪松筆電的 GPU 已經太舊了 XD
kiang 22:23:13
只好買台 m1 max 了

是說在一些有 GPU 的虛擬機跑的速度比 colab 免費版本還慢
kiang 22:23:13
只好買台 m1 max 了

是說在一些有 GPU 的虛擬機跑的速度比 colab 免費版本還慢
ronnywang 22:24:20
https://github.com/ggerganov/whisper.cpp/tree/master/examples/stream
今天有發現 whisper.cpp 也有 stream 模式,可以直接抓麥克風一句一句抓
1 💡 2
ronnywang 22:24:20
https://github.com/ggerganov/whisper.cpp/tree/master/examples/stream
今天有發現 whisper.cpp 也有 stream 模式,可以直接抓麥克風一句一句抓