Mercurial > repos > bgruening > whisper
view whisper.xml @ 1:02fa7b2245e6 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/whisper commit 66411f2c59c5c798edef1297fa2e712e5afd86b3
author | bgruening |
---|---|
date | Thu, 25 Apr 2024 12:47:13 +0000 |
parents | 2706ea308f94 |
children |
line wrap: on
line source
<tool id="whisper" name="Speech to Text" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.01" license="MIT"> <description> Transcribe audio or video files to text using the OpenAI Whisper </description> <macros> <token name="@TOOL_VERSION@">20231117</token> <token name="@VERSION_SUFFIX@">0</token> </macros> <requirements> <container type="docker">quay.io/galaxy/whisper:20231117</container> </requirements> <command detect_errors="exit_code"><![CDATA[ mkdir -p ./outs ./models && ln -s '$infile' ./input.${infile.ext} && whisper ./input.${infile.ext} --model $model --output_dir ./outs --threads \${GALAXY_SLOTS:-2} --task transcribe --output_format all --verbose False --model_dir \${OPENAI_WHISPER_MODEL_DIR:-./models} #if str($language).strip(): --language '$language' #end if #if $advanced.temperature: --temperature '$temperature' #end if #if $advanced.best_of: --best_of '$advanced.best_of' #end if #if $advanced.beam_size: --beam_size '$advanced.beam_size' #end if #if $advanced.patience: --patience '$advanced.patience' #end if #if $advanced.length_penalty: --length_penalty '$advanced.length_penalty' #end if #if $advanced.suppress_tokens: --suppress_tokens '$advanced.suppress_tokens' #end if #if str($advanced.initial_prompt).strip(): --initial_prompt '$advanced.initial_prompt' #end if #if $advanced.condition_on_previous_text: --condition_on_previous_text '$advanced.condition_on_previous_text' #end if #if $advanced.temperature_increment_on_fallback: --temperature_increment_on_fallback '$advanced.temperature_increment_on_fallback' #end if #if $advanced.compression_ratio_threshold: --compression_ratio_threshold '$advanced.compression_ratio_threshold' #end if #if $advanced.logprob_threshold: --logprob_threshold '$advanced.logprob_threshold' #end if #if $advanced.no_speech_threshold: --no_speech_threshold '$advanced.no_speech_threshold' #end if #if $advanced.word_timestamps.word_timestamps == "True": --word_timestamps '$advanced.word_timestamps.word_timestamps' #if $advanced.word_timestamps.highlight_words: --highlight_words '$advanced.word_timestamps.highlight_words' #end if #if $advanced.word_timestamps.max_line_width: --max_line_width '$advanced.word_timestamps.max_line_width' #end if #if $advanced.word_timestamps.max_line_count: --max_line_count '$advanced.word_timestamps.max_line_count' #end if #if $advanced.word_timestamps.max_words_per_line: --max_words_per_line '$advanced.word_timestamps.max_words_per_line' #end if #end if ]]> </command> <environment_variables> <!-- we will disable the progress bar which is printed to stderr --> <environment_variable name="TQDM_DISABLE">1</environment_variable> </environment_variables> <inputs> <param name="infile" type="data" format="wav,mp3,mkv,flv,mpg,ogg,wma,mp4" label="Select audio or video file" /> <param argument="--model" type="select" label="Speech to Text Model"> <option value="tiny">Tiny (~32x faster than the large model)</option> <option value="base">Base (~16x faster than the large model)</option> <option value="small" selected="true">Small (~6x faster than the large model)</option> <option value="medium">Medium (~2x faster than the large model)</option> <option value="large">Large</option> </param> <param argument="--language" type="select" label="Language"> <option value="">Auto (detect language)</option> <option value="Afrikaans">Afrikaans</option> <option value="Albanian">Albanian</option> <option value="Amharic">Amharic</option> <option value="Arabic">Arabic</option> <option value="Armenian">Armenian</option> <option value="Assamese">Assamese</option> <option value="Azerbaijani">Azerbaijani</option> <option value="Bashkir">Bashkir</option> <option value="Basque">Basque</option> <option value="Belarusian">Belarusian</option> <option value="Bengali">Bengali</option> <option value="Bosnian">Bosnian</option> <option value="Breton">Breton</option> <option value="Bulgarian">Bulgarian</option> <option value="Burmese">Burmese</option> <option value="Cantonese">Cantonese</option> <option value="Castilian">Castilian</option> <option value="Catalan">Catalan</option> <option value="Chinese">Chinese</option> <option value="Croatian">Croatian</option> <option value="Czech">Czech</option> <option value="Danish">Danish</option> <option value="Dutch">Dutch</option> <option value="English">English</option> <option value="Estonian">Estonian</option> <option value="Faroese">Faroese</option> <option value="Finnish">Finnish</option> <option value="Flemish">Flemish</option> <option value="French">French</option> <option value="Galician">Galician</option> <option value="Georgian">Georgian</option> <option value="German">German</option> <option value="Greek">Greek</option> <option value="Gujarati">Gujarati</option> <option value="Haitian">Haitian</option> <option value="Haitian Creole">Haitian Creole</option> <option value="Hausa">Hausa</option> <option value="Hawaiian">Hawaiian</option> <option value="Hebrew">Hebrew</option> <option value="Hindi">Hindi</option> <option value="Hungarian">Hungarian</option> <option value="Icelandic">Icelandic</option> <option value="Indonesian">Indonesian</option> <option value="Italian">Italian</option> <option value="Japanese">Japanese</option> <option value="Javanese">Javanese</option> <option value="Kannada">Kannada</option> <option value="Kazakh">Kazakh</option> <option value="Khmer">Khmer</option> <option value="Korean">Korean</option> <option value="Lao">Lao</option> <option value="Latin">Latin</option> <option value="Latvian">Latvian</option> <option value="Letzeburgesch">Letzeburgesch</option> <option value="Lingala">Lingala</option> <option value="Lithuanian">Lithuanian</option> <option value="Luxembourgish">Luxembourgish</option> <option value="Macedonian">Macedonian</option> <option value="Malagasy">Malagasy</option> <option value="Malay">Malay</option> <option value="Malayalam">Malayalam</option> <option value="Maltese">Maltese</option> <option value="Mandarin">Mandarin</option> <option value="Maori">Maori</option> <option value="Marathi">Marathi</option> <option value="Moldavian">Moldavian</option> <option value="Moldovan">Moldovan</option> <option value="Mongolian">Mongolian</option> <option value="Myanmar">Myanmar</option> <option value="Nepali">Nepali</option> <option value="Norwegian">Norwegian</option> <option value="Nynorsk">Nynorsk</option> <option value="Occitan">Occitan</option> <option value="Panjabi">Panjabi</option> <option value="Pashto">Pashto</option> <option value="Persian">Persian</option> <option value="Polish">Polish</option> <option value="Portuguese">Portuguese</option> <option value="Punjabi">Punjabi</option> <option value="Pushto">Pushto</option> <option value="Romanian">Romanian</option> <option value="Russian">Russian</option> <option value="Sanskrit">Sanskrit</option> <option value="Serbian">Serbian</option> <option value="Shona">Shona</option> <option value="Sindhi">Sindhi</option> <option value="Sinhala">Sinhala</option> <option value="Sinhalese">Sinhalese</option> <option value="Slovak">Slovak</option> <option value="Slovenian">Slovenian</option> <option value="Somali">Somali</option> <option value="Spanish">Spanish</option> <option value="Sundanese">Sundanese</option> <option value="Swahili">Swahili</option> <option value="Swedish">Swedish</option> <option value="Tagalog">Tagalog</option> <option value="Tajik">Tajik</option> <option value="Tamil">Tamil</option> <option value="Tatar">Tatar</option> <option value="Telugu">Telugu</option> <option value="Thai">Thai</option> <option value="Tibetan">Tibetan</option> <option value="Turkish">Turkish</option> <option value="Turkmen">Turkmen</option> <option value="Ukrainian">Ukrainian</option> <option value="Urdu">Urdu</option> <option value="Uzbek">Uzbek</option> <option value="Valencian">Valencian</option> <option value="Vietnamese">Vietnamese</option> <option value="Welsh">Welsh</option> <option value="Yiddish">Yiddish</option> <option value="Yoruba">Yoruba</option> </param> <param argument="--output_format" type="select" label="Output Format" multiple="true"> <option value="txt" selected="true">Text</option> <option value="json">JSON</option> <option value="srt">SubRip</option> <option value="vtt">WebVTT</option> <option value="tsv">Tab-separated values</option> </param> <section name="advanced" title="Advanced Options"> <param argument="--temperature" type="integer" value="0" optional="true" label="Temperature" help="Temperature to use for sampling" /> <param argument="--best_of" type="integer" value="5" optional="true" label="Best of" help="Number of candidates when sampling with non-zero temperature" /> <param argument="--beam_size" type="integer" value="5" optional="true" label="Beam size" help="Number of beams in beam search, only applicable when temperature is zero" /> <param argument="--patience" type="float" value="" optional="true" label="Optional patience value to use in beam decoding" help="As in https://arxiv.org/abs/2204.05424, the default (1.0) is equivalent to conventional beam search" /> <param argument="--length_penalty" type="float" value="" optional="true" label="Optional token length penalty coefficient (alpha)" help="As in https://arxiv.org/abs/1609.08144, uses simple length normalization by default" /> <param argument="--suppress_tokens" type="integer" value="-1" optional="true" label="Suppress tokens" help="Comma-separated list of token ids to suppress during sampling; -1 will suppress most special characters except common punctuations" /> <param argument="--initial_prompt" type="text" value="" optional="true" label="Initial prompt" help="Optional text to provide as a prompt for the first window" /> <param argument="--condition_on_previous_text" type="boolean" truevalue="True" falsevalue="False" checked="true" optional="true" label="Condition on previous text" help="If True, provide the previous output of the model as a prompt for the next window; disabling may make the text inconsistent across windows, but the model becomes less prone to getting stuck in a failure loop" /> <param argument="--temperature_increment_on_fallback" type="float" value="0.2" optional="true" label="Temperature increment on fallback" help="Temperature to increase when falling back when the decoding fails to meet either of the thresholds below" /> <param argument="--compression_ratio_threshold" type="float" value="2.4" optional="true" label="Compression ratio threshold" help="If the gzip compression ratio is higher than this value, treat the decoding as failed" /> <param argument="--logprob_threshold" type="float" value="-1.0" optional="true" label="Logprob threshold" help="If the average log probability is lower than this value, treat the decoding as failed" /> <param argument="--no_speech_threshold" type="float" value="0.6" optional="true" label="No speech threshold" help="If the probability of the |nospeech| token is higher than this value AND the decoding has failed due to `logprob_threshold`, consider the segment as silence" /> <conditional name="word_timestamps"> <param argument="--word_timestamps" type="select" label="Extract word timestamps?" help="(experimental) Extract word-level timestamps and refine the results based on them"> <option value="False">False</option> <option value="True">True</option> </param> <when value="True"> <param argument="--highlight_words" type="boolean" truevalue="True" falsevalue="False" value="False" optional="true" label="Highlight words" help="Underline each word as it is spoken in srt and vtt" /> <param argument="--max_line_width" type="integer" value="" optional="true" label="Max line width" help="The maximum number of characters in a line before breaking the line" /> <param argument="--max_line_count" type="integer" value="" optional="true" label="Max line count" help="The maximum number of lines in a segment" /> <param argument="--max_words_per_line" type="integer" value="" optional="true" label="Max words per line" help="No effect with --max_line_width. the maximum number of words in a segment" /> </when> <when value="False"> </when> </conditional> </section> </inputs> <outputs> <data name="output_txt" format="txt" from_work_dir="./outs/input.txt" label="${tool.name} on ${on_string}.txt"> <filter>'txt' in output_format</filter> </data> <data name="output_json" format="json" from_work_dir="./outs/input.json" label="${tool.name} on ${on_string}.json"> <filter>'json' in output_format</filter> </data> <data name="output_srt" format="txt" from_work_dir="./outs/input.srt" label="${tool.name} on ${on_string}.srt"> <filter>'srt' in output_format</filter> </data> <data name="output_vtt" format="txt" from_work_dir="./outs/input.vtt" label="${tool.name} on ${on_string}.vtt"> <filter>'vtt' in output_format</filter> </data> <data name="output_tsv" format="tabular" from_work_dir="./outs/input.tsv" label="${tool.name} on ${on_string}.tsv"> <filter>'tsv' in output_format</filter> </data> </outputs> <tests> <test expect_num_outputs="1"> <param name="infile" value="english.wav" ftype="wav"/> <param name="model" value="tiny"/> <param name="language" value="English"/> <param name="output_format" value="txt"/> <output name="output_txt" file="transcribe.txt"/> </test> <test expect_num_outputs="3"> <param name="infile" value="english.wav" ftype="wav"/> <param name="model" value="tiny"/> <param name="language" value="English"/> <param name="output_format" value="srt,tsv,json"/> <output name="output_srt" file="transcribe_english.srt"/> <output name="output_tsv" file="transcribe_english.tsv"/> <output name="output_json"> <assert_contents> <has_text text="21-year-old Jesus joined Manchester City last year in January 2017 from"/> <has_text text="temperature"/> <has_text text="no_speech_prob"/> <has_text text="English"/> <has_n_lines n="1"/> </assert_contents> </output> </test> <test expect_num_outputs="1"> <param name="infile" value="german.wav" ftype="wav"/> <param name="model" value="small"/> <param name="language" value="German"/> <param name="output_format" value="txt"/> <output name="output_txt" file="transcribe_german.txt"/> </test> <test expect_num_outputs="1"> <param name="infile" value="german_english.mp3" ftype="mp3"/> <param name="model" value="medium"/> <param name="output_format" value="txt"/> <output name="output_txt" file="transcribe_german_english.txt"/> </test> <test expect_num_outputs="2"> <param name="infile" value="persian.wav" ftype="wav"/> <param name="model" value="medium"/> <param name="language" value="Persian"/> <param name="output_format" value="srt,json"/> <section name="advanced"> <param name="condition_on_previous_text" value="False"/> <conditional name="word_timestamps"> <param name="word_timestamps" value="True"/> <param name="max_words_per_line" value="5"/> </conditional> </section> <output name="output_srt"> <assert_contents> <has_n_lines n="32"/> </assert_contents> </output> <output name="output_json"> <assert_contents> <has_text text="\u0628\u0631\u062e\u06cc \u0627\u0632 \u0627\u06cc\u0646"/> <has_text text="temperature"/> <has_text text="no_speech_prob"/> <has_text text="Persian"/> <has_n_lines n="1"/> </assert_contents> </output> </test> </tests> <help><![CDATA[ .. class:: infomark **What it does** Transcribe audio or video files to text using the `Whisper from OpenAI <https://github.com/openai/whisper>`_. Usage ..... **Input** Audio or video file to transcribe in one of wav, mp3, mkv, flv, mpg, ogg, wma, or mp4. **Output** Transcribed text in the selected format. The output can be in text, JSON, SubRip, WebVTT, or tab-separated values (tabular) format. ]]></help> <creator> <person givenName="Alireza" familyName="Heidari" url="http://github.com/itisalirh"/> </creator> <citations> <citation type="bibtex"> @misc{openai2022whisper, title={Whisper}, author={OpenAI}, year={2022}, url={https://github.com/openai/whisper} } </citation> </citations> </tool>