äŒè°ãæã¡åããã®ãã³ã«å¿ æ»ã§ã¡ã¢ãåããçµãã£ãåŸã«è°äºé²ãæž æžãããã€ã³ã¿ãã¥ãŒé³æºãäžæåæ¢ããªããäœåºŠãå·»ãæ»ããŠæžãèµ·ãããåç»ã³ã³ãã³ãã®åå¹ãäžæåãã€å ¥åããããããããè³ã§èããŠæã§æã€ãäœæ¥ã¯ãç¥ããªããã¡ã«èšå€§ãªæéã奪ã£ãŠããŸãã
OpenAIãå ¬éããŠããé³å£°èªèAIãWhisperããPythonãã䜿ããããã«ãªããšããã®å æ¯ã¯äžå€ããŸããäŒè°ãé²é³ããŠããã°ãåŸã§Pythonã¹ã¯ãªããã«é£ãããã ãã§ãã»ãŒãã®ãŸãŸäœ¿ããæåèµ·ãããè¿ã£ãŠããŸããã€ã³ã¿ãŒãããæ¥ç¶ãäžèŠãªããŒã«ã«å®è¡ãªããæ©å¯æ§ã®é«ã瀟å äŒè°ã§ãã¯ã©ãŠãã«é³å£°ãæž¡ãå¿é ã¯ãããŸããã仿¥ãããèªåã®æéããèãåãäœæ¥ãã§ã¯ãªããèããä»äºãã«æ¯ãåãçŽããããã«ãªããŸãâš
Whisperã¯OpenAIãå ¬éããŠããé³å£°èªèAIã§ãé³å£°ãã¡ã€ã«ãå ¥åãããšãã®çºè©±å 容ãããã¹ããšããŠè¿ããŠãããã¢ãã«ã§ããChatGPTã»ã©ã®ç¥å床ã¯ãªããã®ã®ãæ¥æ¬èªãå«ãå€èšèªã«å¯Ÿå¿ããŠãããPythonããããããªã³ãŒãã§ããŒã«ã«PCäžã§ãåããããšãã倧ããªé åããããŸãã
äœ¿ãæ¹ã¯å€§ããåããŠ2ã€ã1ã€ã¯OpenAIã®Web APIãå©ãæ¹æ³ããã1ã€ã¯ã¢ãã«æ¬äœãããŒã«ã«ã«ããŠã³ããŒãããŠåããæ¹æ³ã§ããããŒã«ã«å®è¡ã®ã¡ãªããã¯äž»ã«äºã€ãã£ãŠããŸãå©çšæéãããããç¡æã§äœ¿ããããšããããŠã¢ãã«ãäžåºŠããŠã³ããŒãããŠããŸãã°ãªãã©ã€ã³ç°å¢ã§ãåãããããšã§ãã瀟å€ç§ã®äŒè°é³å£°ãæ±ããšãããé·å°ºã®é³æºã倧éã«ãããåŠçããããšãã«ããã®ç¹æ§ã¯å€§ããªæŠåšã«ãªããŸãð
ãŸãã¯Whisperæ¬äœã®Pythonã©ã€ãã©ãªãå
¥ããŸããã¿ãŒããã«ã§pip install -U openai-whisperãå®è¡ããã ããããã§Pythonã³ãŒãããimport whisperãšæžããããã«ãªããŸãã
Whisperã¯å
éšã§é³å£°ãã¡ã€ã«ãæ±ãããã«FFmpegãå©çšããŸããMacãªãbrew install ffmpegãUbuntuãªã©ã®linuxãªãapt install ffmpegãWindowsãªãããã±ãŒãžãããŒãžã£ãŒã®choco install ffmpegã§ã€ã³ã¹ããŒã«ã§ããŸããWindowsã§æªå°å
¥ã®å Žåã¯ã管çè
æš©éã§PowerShellãèµ·åããChocolateyå
¬åŒãµã€ãã«èšèŒãããäžè¡ã³ãã³ãã貌ãä»ããŠå®è¡ããã°Chocolateyèªäœãããã«çšæã§ããŸãã
Whisperã«ã¯tinyãbaseãsmallãmediumãlargeãlarge-v2ãlarge-v3ãšè€æ°ã®ã¢ãã«ãµã€ãºãçšæãããŠããŸãã倧ããã¢ãã«ã»ã©ãã¡ã€ã«ãµã€ãºãåŠçæéãå¢ãã代ããã«ãèªè粟床ãé«ããªãåŸåããããŸãããã¹ãŠã®ã¢ãã«ãæ¥æ¬èªã«å¯Ÿå¿ããŠããã®ã§ããŸãã¯è»œéãªbaseã§åäœç¢ºèªãããŠãããå¿
èŠã«å¿ããŠå€§ããã¢ãã«ãžåãæ¿ããŠããã®ãå
å®ãªé²ãæ¹ã§ãã
æºåãæŽã£ãããPythonã¹ã¯ãªããã¯ãšãŠãã·ã³ãã«ã§ããwhisper.load_model("base")ã§ã¢ãã«ãèªã¿èŸŒã¿ãmodel.transcribe("test.wav")ã«é³å£°ãã¡ã€ã«ã®ãã¹ãæž¡ãã ããè¿ã£ãŠããã®ã¯èŸæžåã®ãªããžã§ã¯ãã§ãresult["text"]ã«æåèµ·ãããããããã¹ããresult["language"]ã«æšå®ãããèšèªã³ãŒããæ ŒçŽãããŠããŸãã
ååå®è¡æã¯ã¢ãã«æ¬äœã®ããŠã³ããŒããèµ°ããããèªèåŠçãå§ãŸããŸã§å°ãæéãããããŸãã2åç®ä»¥éã¯ããŒã«ã«ã®ãã£ãã·ã¥ã䜿ãããã®ã§ãèµ·åããããã¹ãåºåãŸã§ãäžæ°ã«çããªããŸãã詊ãã«èªåã®å£°ãé²é³ããæ°åç§ã®wavãã¡ã€ã«ãé£ãããŠã¿ããšãæã£ã以äžã®ç²ŸåºŠã«é©ãã¯ãã§ããå€å°ã®èª€èªèã¯ãã£ãŠããè°äºé²ã®äžæžããšããŠäœ¿ãã«ã¯ååãããã¬ãã«ã§è¿ã£ãŠããŸãð
é·å°ºã®é³æºãããã粟床ã®é«ãlargeã¢ãã«ã䜿ãããå Žåã¯ãCPUã ãã ãšåŠçã«æéãããããŸããããã§æŽ»èºããã®ãGPUã§ããtorch.cuda.is_available()ã§GPUã®å©çšå¯åŠãå€å®ããdevice="cuda"ãŸãã¯"cpu"ãload_modelã®åŒæ°deviceã«æž¡ãã ãã§åãæ¿ããããŸãã
èªå®
ã«GPUæèŒãã·ã³ããªãå Žåã¯ãGoogle Cloudã®VMã€ã³ã¹ã¿ã³ã¹ã§Deep Learning VMã€ã¡ãŒãžãšNVIDIA T4 GPUãéžãã§èµ·åããã°ããã©ã€ã蟌ã¿ã§äžæ°ã«ç°å¢ãæŽããŸããSSHéµãç»é²ããŠVS Codeã®Remote SSHæ¡åŒµããã€ãªãã°ãããŒã«ã«ãšå€ãããªãæèŠã§ã³ãŒããæžããŸããå®è¡äžã«å¥ã®ã¿ãŒããã«ã§nvidia-smiãå©ãã°ãGPUã¡ã¢ãªããã£ãã䜿ãããŠããæ§åã確èªã§ããåŠçæéãåçã«çããªã£ãããšãäœæã§ããã¯ãã§ãð
Whisperã®å®åãæå€§éã«åŒãåºãã«ã¯ãå ¥åãšãªãé³å£°ã®è³ªãšãéçºãæ¯ããç°å¢ã倧ãããã®ãèšããŸããããããªé³ã§é²ããŠããã°èªè粟床ã¯çŽ çŽã«äžãããå¿«é©ãªäœæ¥ç°å¢ãããã°ã³ãŒããæžãæéãã®ãã®ã楜ãããªããŸããæåèµ·ãããæ¥åžžæ¥åã«çµã¿èŸŒãã§ãããªããæå ã«ããããŠããããã¢ã€ãã ãããã€ã玹ä»ããŸãã
äŒè°ãã€ã³ã¿ãã¥ãŒã§ãããã¡ãªã®ããé²ããŠããã¯ãã®é³å£°ããã€ãºã ããã ã£ããã声ãå°ãããŠèãåããªãã£ãããããã©ãã«ãå°çšã®ICã¬ã³ãŒããŒãããã°ãéé³ã®å°ãªãã¯ãªã¢ãªé³ã§é·æéé²é³ã§ããWhisperã«æž¡ãããšãã®èªè粟床ããã£ãšäžãããŸããæã¡åããã¡ã¢ããåæèšäºãŸã§ãçšéãéžã°ãäžå°ãããšå®å¿ã§ãã
ZoomãTeamsã®äŒè°é²é³ãWhisperã§åŠçãããªããPCã®å èµãã€ã¯ã§ã¯ãªãåäžæåæ§ã®ã³ã³ãã³ãµãŒãã€ã¯ãçšæããããšããã声ãã¯ãªã¢ã«æŸããå®çªUSBãã€ã¯ãäžæ¬æºã«çœ®ããŠããã ãã§ãèªåã®çºè©±ããŒããæ£ç¢ºã«ããã¹ãåãããè°äºé²ã®å質ãèŠéããŸãã
Whisperãåãããªãããããããã£ãšã«ã¹ã¿ãã€ãºãããããšæã£ããšããPythonæ¬äœã®ç¥èããã£ããããŠãããã©ããã§å¿çšã®å¹ ã倧ããå€ãããŸããææ³ããå®çšã©ã€ãã©ãªãŸã§ãéãã§åŠã¹ãå®çªæžãäžåãã蟌ãã§ãããšãæ°ããAIã¢ãã«ãç»å ŽããŠãå³åº§ã«è©Šããããã«ãªããŸãã
é³å£°èªèã詊ãããã§æå€ãšéèŠãªã®ããèªåã®äœæ¥é³ãé²é³ã«æ··ãããªãããšãæéµé³ã®å°ããã¡ã«ãã«ã«ããŒããŒããéé»å®¹éç¡æ¥ç¹ããŒããŒããéžãã§ããã°ãé²é³äžãã¿ã€ãã³ã°é³ã«éªéããããåŸããWhisperã«é£ãããé³å£°ããããã«ä¿ãŠãŸããé·æéã®ã³ãŒãã£ã³ã°èªäœãå¿«é©ã«ãªããå°å³ã«å¹ãäžå°ã§ãã
Whisperã®largeã¢ãã«ã¯æ°GBåäœã®ãµã€ãºã«ãªããŸãããé²é³ããé³å£°ããŒã¿ãç©ã¿éãªãã°äžæ°ã«å®¹éãå§è¿«ããŸããNVMeæ¥ç¶ã®å€ä»ãSSDãäžå°çšæããŠãããšãã¢ãã«ã»é³å£°ã»æžãèµ·ããããã¹ããäžæ¬ç®¡çã§ããå¥ãã·ã³ãžã®ç°å¢ç§»è¡ãã±ãŒãã«äžæ¬ã§å®äºããŸãã
ããŒã«ã«å®è¡ã§ããã°ãã¢ãã«ãã©ã€ãã©ãªããªãŒãã³ãœãŒã¹ãšããŠå ¬éãããŠããããã远å ã®å©çšæéã¯çºçããŸãããWeb APIçµç±ã§äœ¿ãå Žåã®ã¿ãOpenAIã®å®ããåŸé課éãçºçããŸãã瀟å å©çšãå人ãããžã§ã¯ãã§æ°å Œããªã詊ããã®ã¯å€§ããªé åã§ãã
baseã¢ãã«ã§ãæ¥åžžäŒè©±ã¬ãã«ãªãååå®çšçãªããã¹ããåŸãããŸãããå°éçšèªãåºæåè©ãæ»èã®åé¡ãªã©ã§èª€èªèã¯åºãŸãã粟床ãäžãããå Žåã¯medium以äžãç¹ã«large-v3ãéžã¶ãšäœæã§ããã»ã©æ¹åãããŸãã代ããã«åŠçæéãšãã·ã³è² è·ã¯å¢ããã®ã§ãçšéãšã®ãã©ã³ã¹ã§éžã³ãŸãããã
åããããšèªäœã¯å¯èœã§ãããCPUã ãã ãšé·å°ºé³æºã§ã¯çŸå®çã§ãªãã»ã©æéããããããšããããŸããæå ã®ãã·ã³ãéåãªå Žåã¯ã¯ã©ãŠãGPUãæé貞ãã§åããããããã¯baseãsmallã§éçšããã®ãè³¢ãéžæã§ãã
ååã®ã¢ãã«ããŠã³ããŒãããæžãŸããŠããŸãã°ããã®åŸã¯ã€ã³ã¿ãŒãããæ¥ç¶ãªãã§åäœããŸããé³å£°ããŒã¿ãå€éšã«éä¿¡ããªããããæ©å¯æ§ã®é«ãäŒè°é²ã®æåèµ·ããã«ãé©ããŠããŸãããã ãã瀟å ã®æ å ±ã»ãã¥ãªãã£ããªã·ãŒã¯å¥éå¿ ã確èªããŠãã ããã
Whisperã®åºåããã®ãŸãŸçŽåç©ã«ããã®ã§ã¯ãªãããŸãã¯äžæžããšããŠåãåããåºæåè©ãå°éçšèªããšãã£ã¿ã®äžæ¬çœ®æã§æŽããéçšãçŸå®çã§ããã¿ã€ã ã¹ã¿ã³ãä»ãã§åºåãããªãã·ã§ã³ã䜿ãã°ãä¿®æ£ãããç®æãé³å£°ã§çŽ æ©ã確èªã§ããäºåºŠæéã倧ããæžããŸãã
Whisperã䜿ããããã«ãªããšãäŒè°ã®è°äºé²ãã€ã³ã¿ãã¥ãŒã®æåèµ·ãããåç»ã®åå¹äœæãèªåŠåŠç¿çšã®ãã£ã¯ããŒã·ã§ã³ãªã©ããããŸã§äººæã«é Œã£ãŠããäœæ¥ãé©ãã»ã©ã·ã³ãã«ãªPythonã¹ã¯ãªããã«çœ®ãæãããŸããload_modelãštranscribeã®ãã£ã2è¡ã§åãã·ã³ãã«ãã¯ãåããŠAIã«è§Šãã人ã§ããèªåã®æ¥åãAIã§èªååã§ããããšããæåäœéšãæã¡åž°ããçšæãªé¡æã§ãã
ã¯ãªã¢ãªé³ãé²ãããã®ãã€ã¯ãã¬ã³ãŒããŒãéçºãæ¯ããæžç±ãšããŒããŠã§ã¢ããããŠGPU掻çšã®ããã®ã¯ã©ãŠãç°å¢ãããããå°ããã€æŽããªããWhisperã䜿ã蟌ãã§ããã°ãå幎åŸã«ã¯ãæåèµ·ããã¯æ©æ¢°ã«ä»»ããèªåã¯å 容ã®è§£éãšæææ±ºå®ã«éäžããããšããæ°ããåãæ¹ãåœããåã«ãªã£ãŠããã¯ãã§ãã仿¥ã€ã³ã¹ããŒã«ã³ãã³ããäžè¡æã€ãšããããããã®æªæ¥ã¯å§ãŸããŸãð
ð æ¥æé·ãããäžè¯AIãã®è¡…
ð é²åãç¶ããAIåç»ã®äžç…
ð¡ïž ããã«ãŒãããå ã«ã穎ã…
ð é²åãç¶ããLinuxãšã³…
ð AIã»åå°äœæ ªã®æ£å¿µå ŽïŒä»…
ð æ¿åã®AIçžå ŽïŒãä»ããç©…