{"id":6160,"date":"2023-09-29T14:34:36","date_gmt":"2023-09-29T14:34:36","guid":{"rendered":"https:\/\/sites.hslu.ch\/werkstatt\/?p=6160"},"modified":"2023-09-29T14:44:42","modified_gmt":"2023-09-29T14:44:42","slug":"whisper-openai-transkription","status":"publish","type":"post","link":"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/","title":{"rendered":"Whisper OpenAI &#8211; Transkription"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_section el_class=&#187;dkw-section-lead&#187;][vc_row][vc_column width=&#187;2\/3&#8243; offset=&#187;vc_col-sm-offset-2&#8243;][vc_column_text]Du brauchst eine Transkription aus einem Audiofile als Protokoll einer Sitzung, Untertitel f\u00fcr dein Video, oder du willst dir eine Audiospur ins Englische \u00fcbersetzen lassen? Dann ist dieses Modell extrem hilfreich! Hier zeigen wir dir wie du dieses Modell auf unserem Machine Learning PC laufen lassen kannst und was du f\u00fcr Outputs erwarten darfst.[\/vc_column_text][\/vc_column][\/vc_row][\/vc_section][vc_section el_class=&#187;dkw-section-content&#187;][vc_row][vc_column width=&#187;1\/3&#8243; el_class=&#187;dkw-col-toc&#187; offset=&#187;vc_col-lg-3&#8243;][vc_column_text]<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Prolog\" >Prolog<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Welche_Sprachen_unterstuetzt_Whisper\" >Welche Sprachen unterst\u00fctzt Whisper<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Whisper_nutzen\" >Whisper nutzen<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Input_Datei\" >Input Datei<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Dateiformate\" >Dateiformate<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Whisper_auf_Datei_anwenden\" >Whisper auf Datei anwenden<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Output_Beispiele\" >Output Beispiele<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Creatures_Comforts\" >Creatures Comforts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Epic_Rapbattle_of_History\" >Epic Rapbattle of History<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Zungenbrecher_Poetry_Slam\" >Zungenbrecher Poetry Slam<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Tschugger\" >Tschugger<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/sites.hslu.ch\/werkstatt\/whisper-openai-transkription\/#Schnitzelbank\" >Schnitzelbank<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n[\/vc_column_text][\/vc_column][vc_column width=&#187;2\/3&#8243; el_class=&#187;dkw-col-content&#187; offset=&#187;vc_col-lg-6&#8243;][vc_column_text]<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Prolog\"><\/span>Prolog<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Open AI hat Whisper Opensource zur Verf\u00fcgung gestellt. Die Software ist auf unserer ML-Workstation verf\u00fcgbar kann aber auch auf deinem Laptop (z.B. einem M1 Macbook) Problemlos installiert und genutzt werden. Whisper erlaubt dir die Extraktion von gesprochener Sprache aus Audiofiles und Videofiles. Du kannst damit also z.B. eine Transkription von gesprochenem Text in ein Textfile machen oder \u00dcbersetzung von verschiedenen Sprachen ins englische Generieren oder deinem Video schnell Untertitel verpassen. Es erkennt auch wenn es sich bei Aufnahmen nur um Hintergrundger\u00e4usche (z.B. Musik) handelt und transkribiert nur die gesprochene Sprache.<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6165\" src=\"https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1000x758.png\" alt=\"\" width=\"1000\" height=\"758\" srcset=\"https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1000x758.png 1000w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-768x582.png 768w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1536x1164.png 1536w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-2048x1552.png 2048w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-848x643.png 848w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1140x864.png 1140w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1170x887.png 1170w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-1920x1455.png 1920w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/whisper_Flowchart-600x455.png 600w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"Welche_Sprachen_unterstuetzt_Whisper\"><\/span>Welche Sprachen unterst\u00fctzt Whisper<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Die Leistung von Whisper ist je nach Sprache sehr unterschiedlich. Die folgende Abbildung zeigt eine Aufschl\u00fcsselung der WER (Word Error Rate) nach Sprachen f\u00fcr den Fleurs-Datensatz unter Verwendung des large-v2-Modells (je kleiner die Zahlen, desto besser die Leistung, d.h. weniger Fehler in der Transkription).<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6166\" src=\"https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-746x1000.png\" alt=\"\" width=\"746\" height=\"1000\" srcset=\"https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-746x1000.png 746w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-768x1029.png 768w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-1146x1536.png 1146w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-848x1136.png 848w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-1140x1528.png 1140w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-1170x1568.png 1170w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen-600x804.png 600w, https:\/\/sites.hslu.ch\/werkstatt\/wp-content\/uploads\/sites\/13\/2023\/09\/WhisperSprachen.png 1306w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/h3>\n<p>Die komplette Liste der unterst\u00fctzten Sprachen:<\/p>\n<p class=\"p1\"><span class=\"s1\">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, und Yoruba.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Whisper_nutzen\"><\/span>Whisper nutzen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"Input_Datei\"><\/span>Input Datei<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Um Whisper auf unserem ML Rechner nutzen zu k\u00f6nnen brauchst du eine Datei die du transkribieren, \u00fcbersetzen oder untertiteln m\u00f6chtest. In unseren Beispielen nehmen wir 3 verschiedene Sprachen respektive Dialekte mit unterschiedlichen Hintergrundger\u00e4uschen:<\/p>\n<ul>\n<li>Englisch:\n<ul>\n<li>Creatures Comforts<\/li>\n<li>Epic Rap Battle of History Bill Gates vs. Steve Jobs (Comedy Rap mit Hintergrundmusik)<\/li>\n<\/ul>\n<\/li>\n<li>Deutsch\n<ul>\n<li>Zungenbrecher Poetry-slam mit Zungenbrechern in Deutsch<\/li>\n<\/ul>\n<\/li>\n<li>Schweizerdeutsch Dialekt\n<ul>\n<li>Tschugger &#8211; Trailer in Englisch und Walliser Dialekt.<\/li>\n<li>Schnitzelbank in Basler Dialekt.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Dateiformate\"><\/span>Dateiformate<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Folgende Formate werden unterst\u00fctzt:<\/p>\n<ul>\n<li>m4a<\/li>\n<li>mp3<\/li>\n<li>webm<\/li>\n<li>mp4<\/li>\n<li>mpga<\/li>\n<li>wave<\/li>\n<li>mpeg<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Whisper_auf_Datei_anwenden\"><\/span>Whisper auf Datei anwenden<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Auf unserem ML Rechner \u00f6ffnest du das Terminal und l\u00e4dst deine Datei folgender Massen:<\/p>\n<p>cd home\/Documents\/Applications\/whisper<br \/>\nconda activate whisper<\/p>\n<p>Whisper startest du nun folgender massen:<\/p>\n<pre class=\"p1\"><span class=\"s1\">whisper home\/Documents\/MyFolder\/MyVideo.mp4 <\/span><span class=\"s1\">--output_dir home\/Documents\/MyVideoFolder\/Whisper\/MyFolder<\/span><\/pre>\n<p>Wir starten Whisper im Terminal indem wir es mit &#171;whisper&#187; aufrufen, danach braucht es einen Pfad wo whisper dein Video \/ Audio File finden kann und zum schluss geben wir Ihm nach dem &#171;&#8211;output_dir&#187; einen weiteren Pfad f\u00fcr den output mit.<\/p>\n<p>Whisper extrahiert nun aus deiner Datei folgende Outputs:<\/p>\n<ul>\n<li>ein json<\/li>\n<li>ein srt (Untertitel File)<\/li>\n<li>ein tsv (Tab Separated Values -&gt; \u00e4hnlich einem csv (Comma Separated Values)<\/li>\n<li>txt (reiner Text)<\/li>\n<li>vtt (Web Video Text Tracks File -&gt; Text mit Zeitangaben)<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Output_Beispiele\"><\/span>Output Beispiele<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>S\u00e4mtliche der folgenden Beispiele sind die generierten Untertitel aus Whisper &#8211; es wurden keine Ver\u00e4nderungen an den Transkriptionen oder dem Timing gemacht. Diese Beispiele sind dazu gedacht um die Potenziale wie auch Anf\u00e4lligkeiten zu demonstrieren.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Creatures_Comforts\"><\/span>Creatures Comforts<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Englische Sprache, wenig Hintergrundger\u00e4usche &#8211; fast Perfekt<\/p>\n<iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"https:\/\/tube.switch.ch\/embed\/g8CoeBo91R?title=hide\" frameborder=\"0\" allow=\"fullscreen\" allowfullscreen><\/iframe> \n<h4><span class=\"ez-toc-section\" id=\"Epic_Rapbattle_of_History\"><\/span>Epic Rapbattle of History<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Ebenfalls Englisch mit starkem Hintergrundger\u00e4usch (Musik \/ Beat): Hier wurde am Anfang vermutlich der Beat als Sprach identifiziert und \u00fcbersetzt.<\/p>\n<iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"https:\/\/tube.switch.ch\/embed\/pOW8j4T6AR?title=hide\" frameborder=\"0\" allow=\"fullscreen\" allowfullscreen><\/iframe> \n<h4><span class=\"ez-toc-section\" id=\"Zungenbrecher_Poetry_Slam\"><\/span>Zungenbrecher Poetry Slam<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Deutsch aber komplizierte S\u00e4tze mit diversen \u00e4hnlich klingenden Worten. Trotzdem ist Whisper meistens pr\u00e4zise.<\/p>\n<iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"https:\/\/tube.switch.ch\/embed\/JQ49y3rFjw?title=hide\" frameborder=\"0\" allow=\"fullscreen\" allowfullscreen><\/iframe> \n<h4><span class=\"ez-toc-section\" id=\"Tschugger\"><\/span>Tschugger<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Schweizer Dialekte sind vermutlich nicht ein riesiger Teil des Trainingsdatensatzes von Whisper, dennoch finde ich es ziemlich spannend wie viel Whisper dennoch &#171;aufschnappt&#187; &#8211; Hier m\u00fcsste aber Definitiv noch eine Person die Untertitel korrigieren.<\/p>\n<iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"https:\/\/tube.switch.ch\/embed\/IjQ019gO0W?title=hide\" frameborder=\"0\" allow=\"fullscreen\" allowfullscreen><\/iframe> \n<h4><span class=\"ez-toc-section\" id=\"Schnitzelbank\"><\/span>Schnitzelbank<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Dialekte sind und bleiben eine Herausforderung f\u00fcr OpenAI`s Whisper&#8230;<\/p>\n<iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"https:\/\/tube.switch.ch\/embed\/FDbs65L2qz?title=hide\" frameborder=\"0\" allow=\"fullscreen\" allowfullscreen><\/iframe> \n<p>[\/vc_column_text][\/vc_column][vc_column width=&#187;1\/3&#8243; el_class=&#187;dkw-col-micro&#187; offset=&#187;vc_col-lg-3&#8243;][\/vc_column][\/vc_row][\/vc_section][vc_section el_class=&#187;dkw-dontprint&#187;][vc_row disable_element=&#187;yes&#187;][vc_column][vc_column_text]\u2014 \u2014 \u2014 INFO: In beiden nachfolgenden Post Grids die passenden Recipies und die passenden Talks\u00a0 ausw\u00e4hlen \u2014 \u2014 \u2014<br \/>\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2>Passende Tools<\/h2>\n<p>[\/vc_column_text][vc_basic_grid post_type=&#187;ids&#187; element_width=&#187;2&#8243; gap=&#187;10&#8243; item=&#187;517&#8243; grid_id=&#187;vc_gid:1695998077636-80894343-ea94-6&#8243; include=&#187;5625&#8243;][\/vc_column][\/vc_row][\/vc_section][vc_section el_class=&#187;dkw-dontprint&#187;][vc_row][vc_column][vc_column_text]<\/p>\n<h2>Passende Talks<\/h2>\n<p>[\/vc_column_text][vc_basic_grid post_type=&#187;ids&#187; element_width=&#187;2&#8243; gap=&#187;10&#8243; item=&#187;517&#8243; grid_id=&#187;vc_gid:1695998077637-c5158097-537c-9&#8243; include=&#187;5606, 5849, 4219, 930, 2975&#8243;][\/vc_column][\/vc_row][\/vc_section]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_section el_class=&#187;dkw-section-lead&#187;][vc_row][vc_column width=&#187;2\/3&#8243; offset=&#187;vc_col-sm-offset-2&#8243;][vc_column_text]Du brauchst eine Transkription aus einem Audiofile als Protokoll einer Sitzung, Untertitel f\u00fcr dein Video, oder du willst dir eine Audiospur [&hellip;]<\/p>\n","protected":false},"author":50,"featured_media":6181,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[15,11],"tags":[],"class_list":["post-6160","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mediadock","category-recipies"],"acf":[],"_links":{"self":[{"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/posts\/6160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/comments?post=6160"}],"version-history":[{"count":15,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/posts\/6160\/revisions"}],"predecessor-version":[{"id":6184,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/posts\/6160\/revisions\/6184"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/media\/6181"}],"wp:attachment":[{"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/media?parent=6160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/categories?post=6160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.hslu.ch\/werkstatt\/wp-json\/wp\/v2\/tags?post=6160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}