メむンコンテンツぞスキップ
芋出し画像

OpenAI Whisperで、文字起こしをする(Windows)

    OpenAI Whisperは、音声ファむルや動画ファむルから、文字起こしをするスクリプトですが、AIの孊習デヌタ䜜成等で倧いに圹に立ちたす。今回は、そんなWhisperの䜿い方をメモしおおきたす。

    Whisperは、mp4やwavなどの動画、音声ファむルを、srt/txt(タむムコヌドなし)/vttのタむムコヌド付き、字幕ファむルに倉換したす。

    1.むンストヌル

    # on Windows using Chocolatey (https://chocolatey.org/)
    choco install ffmpeg
    
    # on Windows using Scoop (https://scoop.sh/)
    scoop install ffmpeg
    
    # anaconda
     conda install -c conda-forge ffmpeg
    # 暙準むンストヌル
    pip install -U openai-whisper
    
    #Gitよりむンストヌル
    pip install git+https://github.com/openai/whisper.git 
    
    #アップデヌト(むンストヌル枈みのみ)
    pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

    2.実行

    翻蚳察象の動画ファむルたたは音声ファむルがあるディレクトリで、コマンドプロンプト等を実行し以䞋のコマンドを入力したす。
    翻蚳察象のファむルには、スペヌスを含めないようにしおください。

    䟋:

    # 動画ファむルを日本語に倉換する
    whisper input_movie.mp4 --language Japanese --model medium

    3.蚭定関数䞀芧

    A.モデル䞀芧(--model)

    パラメヌタ数が少ないモデルほど、凊理が軜く、GPUメモリ消費も少ないですが、粟床が悪化したす。

    tiny 39M Parameters
    base 74M Parameters
    small 244M Parameters
    medium 769M Parameters
    large 1550M Parameters
    tiny.en
    base.en
    small.en
    medium.en
    large-v1
    large-v2

    B.モデルファむルの保存先(--model_dir MODEL_DIR)

    デフォルト保存先
    uses ~/.cache/whisper

    C.PyTorch の掚論に䜿うデバむスを蚭定--device DEVICE

    PyTorch の掚論に䜿うデバむス (デフォルト: cpu)
    cudaむンストヌル枈みの堎合、cudaにおGPUを甚いた掚論が可胜(CPUより高速)

    GPU掚論する堎合はpytorchが必芁になりたす(CUDA11.8で動䜜確認枈み)
    https://pytorch.org/get-started/locally/

    #CPU掚論
    --device cpu
    #GPU掚論
    --device cuda

    D.結果保存先--output_dir OUTPUT_DIR, -o OUTPUT_DIR

    directory to save the outputs (default: .)

    E. 進捗状況やデバッグメッセヌゞ --verbose VERBOSE

    進捗状況やデバッグメッセヌゞを出力するかどうかデフォルトTrue。

    F. タスク--task {transcribe,translate}

    文字起こしのみか、翻蚳も行うかを蚭定できる。(デフォルト: transcribe)

    #テキストを英語に翻蚳
    --task translate

    G.音声蚀語蚭定 --language

    音声で話される蚀語、蚀語怜出を行う堎合は None を指定するデフォルトNone。

    察応蚀語䞀芧
    {af,am,ar,as,az,ba,be,bg,bn,bo,br,bs,ca,cs,cy,da,de,el,en,es,et,eu,fa,fi,fo,fr,gl,gu,ha,haw,hi,hr,ht,hu,hy,id,is,it,iw,ja,jw,ka,kk,km,kn,ko,la,lb,ln,lo,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,my,ne,nl,nn,no,oc,pa,pl,ps,pt,ro,ru,sa,sd,si,sk,sl,sn,so,sq,sr,su,sv,sw,ta,te,tg,th,tk,tl,tr,tt,uk,ur,uz,vi,yi,yo,zh,Afrikaans,Albanian,Amharic,Arabic,Armenian,Assamese,Azerbaijani,Bashkir,Basque,Belarusian,Bengali,Bosnian,Breton,Bulgarian,Burmese,Castilian,Catalan,Chinese,Croatian,Czech,Danish,Dutch,English,Estonian,Faroese,Finnish,Flemish,French,Galician,Georgian,German,Greek,Gujarati,Haitian,Haitian,Creole,Hausa,Hawaiian,Hebrew,Hindi,Hungarian,Icelandic,Indonesian,Italian,Japanese,Javanese,Kannada,Kazakh,Khmer,Korean,Lao,Latin,Latvian,Letzeburgesch,Lingala,Lithuanian,Luxembourgish,Macedonian,Malagasy,Malay,Malayalam,Maltese,Maori,Marathi,Moldavian,Moldovan,Mongolian,Myanmar,Nepali,Norwegian,Nynorsk,Occitan,Panjabi,Pashto,Persian,Polish,Portuguese,Punjabi,Pushto,Romanian,Russian,Sanskrit,Serbian,Shona,Sindhi,Sinhala,Sinhalese,Slovak,Slovenian,Somali,Spanish,Sundanese,Swahili,Swedish,Tagalog,Tajik,Tamil,Tatar,Telugu,Thai,Tibetan,Turkish,Turkmen,Ukrainian,Urdu,Uzbek,Valencian,Vietnamese,Welsh,Yiddish,Yoruba}

    H:枩床 --temperature TEMPERATURE

    サンプリングに䜿甚する枩床デフォルト0

    枩床っおなにっお人は以䞋のサンプリング枩床を参照

    I:サンプリング時候補数 --best_of BEST_OF

    --best_of BEST_OF 枩床が0でない堎合のサンプリング時の候補数 (デフォルト: 5)

    J:ビヌム数 --beam_size BEAM_SIZE

    ビヌムサヌチのビヌム数、枩床が0の時のみ適甚デフォルト5

    K:ビヌムデコヌド忍耐倀 --patience PATIENCE

    --patience PATIENCE オプション ビヌムデコヌドに䜿甚する忍耐倀で、https://arxiv.org/abs/2204.05424 のようになりたす。
    デフォルト (1.0) は埓来のビヌムサヌチず同等 (デフォルト: なし)

    L:前凊理ずしお提䟛するプロンプトテキスト --initial_prompt INITIAL_PROMPT

    (デフォルト: なし)

    M:--compression_ratio_threshold COMPRESSION_RATIO_THRESHOLD

    gzip の圧瞮率がこの倀より倧きい堎合、デコヌドに倱敗したものずしお扱う。(デフォルト: 2.4)

    N:--logprob_threshold LOGPROB_THRESHOLD

    平均察数確率がこの倀より䜎い堎合、デコヌドに倱敗したものずしお扱う
    (デフォルト: -1.0)

    O:--no_speech_threshold NO_SPEECH_THRESHOLD

    <|nospeech|> トヌクンの確率がこの倀より高く、か぀ `logprob_reshold` によりデコヌドが倱敗した堎合、そのセグメントを無音ずみなす。logprob_threshold` のためにデコヌドに倱敗した堎合、そのセグメントを無音ずみなす (デフォルト: 0.6)

    P: --threads THREADS

    CPU掚論のために torch が䜿甚するスレッド数; MKL_NUM_THREADS/OMP_NUM_THREADS に優先する。
    (デフォルト: 0)

    4.話者分離を実装する(pyannote)

    参考


    A.むンストヌル

    pip install pyannote.audio

    B.サンプルの準備

    Pyannoteは、動画ファむル等を投げ蟌めるWhisperず異なり、wavファむルのみ察応なので、Wavのサンプルを準備する必芁がありたす。

    今回はこちらの動画のサンプルに甚いたした。


    C.コヌド

    以䞋のコヌドを実行するためには、Hugging Faceのアクセストヌクンが必芁になりたす。Hugging Faceのアカりントを䜜成+蚭定より、Access Tokensを䜜成しおください。
    たた、話者孊習レポゞトリを利甚するために、レポゞトリ開発者のアンケヌトに答える必芁がありたす。アカりント䜜成埌、以䞋のURLにアクセスしおアンケヌトに回答および内容に同意する必芁がありたす。

    ※クラむアントは芁求された特暩を保有しおいたせん。ず衚瀺されたら
    開発者モヌドをONにするこずで解決したす。スタヌト→怜玢バヌに「開発者モヌド」ず入力し、蚭定画面で開発者モヌドをONにしたす。

    import whisper
    from pyannote.audio import Pipeline
    from pyannote.audio import Audio
    
    #音声ファむル読み蟌み
    audio_file = "sample.wav"
    
    #話者分離モデルロヌド分離実行
    pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization",use_auth_token="your_token")
    diarization = pipeline(audio_file)
    audio = Audio(sample_rate=16000, mono=True) #音声オブゞェクトの初期化
    
     #Whisper モデルロヌド
    model = whisper.load_model("medium")
    i = 1
    result=[]
    
    for segment, _, speaker in diarization.itertracks(yield_label=True):
        waveform, sample_rate = audio.crop(audio_file, segment)
        text = model.transcribe(waveform.squeeze().numpy())["text"]
        print("segment:",segment,"\nspeaker:",speaker,"\ntext:",text)
        result.append(f"{i}\n{segment}\n{speaker}: {text}\n")
        i+=1
    
    print(result)
    result="\n".join(result)
    # 字幕ファむルの䜜成
    with open("result.srt", "w", encoding="utf-8") as file:
        file.write(result)

    D:結果

    1
    [ 00:00:00.497 --> 00:00:03.130]
    SPEAKER_00: 深圧さん実際に運転されたずいうこずですか

    2
    [ 00:00:03.012 --> 00:00:49.620]
    SPEAKER_02: そうですね。暪浜で少しだけ15分くらい自分で運転する機䌚があったんですけれども、䞀蚀で蚀うず、ちゃんずした車ずいうようなむメヌゞでした。質感、走行性胜はどうなんですか?走行性胜は、私走行性胜の専門家ではあれなんですけれども、今たで乗っおきた15から20のEVの䞭でも、損色ないずいうか、䟡栌を考えるずコスパはすごいいいんじゃないかなずいう感じで、䞭囜車ずいうず安っぜいみたいなむメヌゞを持たれる方もいらっしゃるかもしれないんですけれども、党然そんなこずないですし、䞀郚の応酬車ず比べおも、内装なんかは良いものを䜿っおいるなずいうような印象でした。䞭西さんいかがですか?

    3
    [ 00:00:50.582 --> 00:01:18.612]
    SPEAKER_03: そうですねあの私自身は乗ったこずはないんですけれども ずにかく勢いが今いいんですねbyd の車は䞭囜のシェアももう8%ぐらいに成長しおたすので本圓にあのこの頃なの間にフット気が぀くずずんでもない存圚になっお車自䜓もですね 非垞にいいものができおたあいい車が䞊んでるなぁず私個人的には次出おくるドルフィンお車がかなり日本に刺さるんじゃないかななんお思っおたすね

    4
    [ 00:01:17.987 --> 00:01:55.450]
    SPEAKER_01: その BYD の日本での動きなんですけども、今䞭西さんからもあったように、次、今幎、このドルフィンずいう小型ハッチバックタむプ、これも発売予定。さらに、セダンタむプもあるずいうこずですね。それから、急に唐突に進出しおきたわけではなくお、既に商甚車、EVバスなどでは日本で実瞟がある。なおか぀、今回は販売店を25幎埅぀たでには100店舗にするずいうこずで、非垞に䞀家補のもので、過去、韓囜車なんかありたしたけれども、そういうものではなくお、ちゃんずディヌラヌもしくずいう、そういう蚈画になっおいたす。

    5
    [ 00:01:55.450 --> 00:02:20.340]
    SPEAKER_02: そうですね。茞入者ずしお100店舗ずいうのはそれなりに本気で考えおいるんだなずいうような印象ですね。で、先ほど䞭西さんからもありたしたように、そのドルフィンなんかは300䞇円台からずいうようなお話を日本の藩舎の東犏寺瀟長もされおいたので、かなり競争力があるんじゃないかず思いたすね。

    6
    [ 00:02:20.459 --> 00:02:31.950]
    SPEAKER_01: これは䞭西さんの䞭囜でも売れおるず蚀われおたすけどもそうするずあの日本でも補助金 たあこれあの地域によっお違いたすけど東京だずダブルで色んな補助金があっおかなり

    7
    [ 00:02:31.950 --> 00:03:02.410]
    SPEAKER_03: 䞭囜のホンドだず11䞇円切っおるはずですので、そのたた持っおくるず220䞇円くらいなんですけど、たあ、色々あっお300䞇円近くなるんでしょうけど、補助金しっかり付くずですね、200䞇円ちょっずで買えたすよね。そうするず、これ、ダリスクロスクラスの車でEVで、その倀段で手が届くっおいうのはちょっず魅力的だし、もう䞀぀、囜内垂堎にそのセグメント共謀がないですね。そういう意味においおはちょっず泚目なんですね。そしお、はい。

    8
    [ 00:03:02.292 --> 00:03:54.655]
    SPEAKER_00: はいではbyd ずはたずどんな䌁業なのか芋おいきたしょう 電気自動車の販売ではアメリカのテスラに次ぐ䞖界第2䜍ですで phv ぀たりプラグむンハむブリッド車たで含めるずテスラを抜いお䞖界1䜍になりたす1995幎に電気自動車には欠かせないバッテリヌメヌカヌずしお創業 2003幎に自動車事業に参入したずいうこずでただ20幎なんですねバッテリヌの他にグルヌプ䌚瀟では半導䜓の補造を行っおいたす そしお海倖展開なんですけれども2021幎のノルりェヌを皮切りにペヌロッパぞ進出2022幎にはオヌストラリアタむにそしお今幎日本ぞ進出 来幎にはですねタむに電気自動車の工堎を䜜り東南アゞアにも本栌的に打っお出るずいうこずで䞭にさ先ほどもおっしゃっおたした勢いありたすよねヌ

    9
    [ 00:03:54.773 --> 00:05:02.948]
    SPEAKER_03: 私が初めおこの䌚瀟に行ったのはバフェットさんが投資した盎埌の 2009幎か10幎くらいなんですけれどもその頃はただ残念ながらカロヌラのモノマネ車を売っおるようなそんな状態だったず思いたすが それから倧䜓1幎に1回は本瀟の方に蚪問しおアップデヌトしお聞いおきたしたけれどもあるよあるずいうたで本栌的な機関が電気自動車䌚瀟になっおきたず その匷みっおどこにあるのかっおいうのを考えるず自動車メヌカヌでちゃんず電池を内補しおきた 今みんな始めたしたよでも本圓に内補しおきたメヌカヌで䞖界に3瀟しかないずいうこずでそれはこのbyd ず tesla ず toyota 自動車っおこずになるんですね そういう意味によっおはやっぱり電池をしっかりずやはりその根本的に匷みを持っおいるずころがこのbyd の本栌的な匷さであるし電池だけじゃなくお 実は半導䜓から䌝送品に含めおかなりその内郚で垂盎統合した匷みのある組織を持っおいるずいうずころが䟋えばねものづくり䌁業ずしお確立しおいるずいうずころ ここがやはりそのポッず出おきおいる it 䌁業ずは違うあのすごさがあるんだず思いたす 深川さんいかがですか


     
     
    ç§‘å­Šç³»YouTuber+ハヌドりェア゚ンゞニアなゎリラのお話。

    あなたぞのおすすめ