<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://apps.clams.ai/feed/apps.xml" rel="self" type="application/atom+xml" /><link href="https://apps.clams.ai/" rel="alternate" type="text/html" /><updated>2026-06-01T22:26:41+00:00</updated><id>https://apps.clams.ai/feed/apps.xml</id><title type="html">CLAMS App Directory | Apps</title><subtitle>Public directory of CLAMS apps.</subtitle><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><entry><title type="html">SmolVLM2 Captioner (v1.0)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v1.0/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v1.0)" /><published>2026-06-01T20:28:09+00:00</published><updated>2026-06-01T20:28:09+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2026-06-01T20:28:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v1.0">ghcr.io/clamsproject/app-smolvlm2-captioner:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies the SmolVLM2-2.2B-Instruct multimodal model to video frames selected by input TimeFrame annotations for prompt-driven captioning / scene description. Each invocation runs a single <code class="language-plaintext highlighter-rouge">prompt</code> against the TimeFrames selected by <code class="language-plaintext highlighter-rouge">tfLabels</code>; to apply different prompts to different label subsets (e.g. one prompt for slates, another for chyrons), run the app once per (<code class="language-plaintext highlighter-rouge">prompt</code>, <code class="language-plaintext highlighter-rouge">tfLabels</code>) combination. Per-TimeFrame captioning is composite: every frame sampled from a TF is fed to the model in a single prompt and yields one caption per TF. This app ships only the 2.2B-Instruct variant – the largest and most general-purpose model in the SmolVLM2 family. The smaller (256M and 500M) SmolVLM2 releases are post-trained specifically for video-QA tasks and we do not expect them to generalize well, given their size.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v1.0">http://apps.clams.ai/smolvlm2-captioner/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://clams.ai/vocabulary/type/VideoDocument/v2">http://clams.ai/vocabulary/type/VideoDocument/v2</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://clams.ai/vocabulary/type/TimeFrame/v6">http://clams.ai/vocabulary/type/TimeFrame/v6</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
      <li><em>label</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Labeled TimeFrame annotations selecting which video segments to caption. Frame selection within each segment is controlled by the universal <code class="language-plaintext highlighter-rouge">tfSamplingMode</code> parameter (see SDK docs). When present, the <code class="language-plaintext highlighter-rouge">representatives</code> property is consumed for representative-based sampling modes. Filter by label with the <code class="language-plaintext highlighter-rouge">tfLabels</code> parameter.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Label(s) of input TimeFrame annotations to caption. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrames are processed regardless of label. To restrict to specific labels, pass this parameter one or more times.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">prompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">You are looking at one or more frames sampled from a single segment of a news video. Describe what is shown, the purpose of this segment in the broader news video, and transcribe any visible text. Produce one consolidated caption across all provided frames.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>User prompt(s) sent to the model. A single value runs as a one-shot generation. A multi-value list is interpreted as a multi-turn static prompt; see <code class="language-plaintext highlighter-rouge">promptMode</code> for how turns are assembled.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Optional system-role text prepended to the conversation. Empty by default.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">turn-taking</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">user-only</code>, <strong><em><code class="language-plaintext highlighter-rouge">turn-taking</code></em></strong></li>
    </ul>

    <blockquote>
      <p>How to interpret a multi-value <code class="language-plaintext highlighter-rouge">prompt</code> list. Has no effect when <code class="language-plaintext highlighter-rouge">prompt</code> has a single value. For semantics of each choice and worked examples, see https://clams.ai/clams-python/app-baseclasses.html#promptable-multiturn</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">maxNewTokens</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">200</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Maximum number of new tokens generated per inference call. Forwarded to the backend’s <code class="language-plaintext highlighter-rouge">generate</code>-equivalent. Larger values grow the KV cache linearly and increase GPU memory usage; reduce if VRAM is constrained.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">temperature</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Sampling temperature. The default <code class="language-plaintext highlighter-rouge">0.0</code> selects deterministic / greedy decoding for maximum reproducibility; override for sampled generation.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">topP</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Nucleus-sampling cumulative probability cutoff. Only meaningful when <code class="language-plaintext highlighter-rouge">temperature</code> is greater than 0.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">topK</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">50</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Top-K sampling cutoff. Only meaningful when <code class="language-plaintext highlighter-rouge">temperature</code> is greater than 0.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">parallelPrompts</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of independent prompts the app runs in parallel (stacks into a single forward pass). The <em>size</em> of each prompt (how many images, how long the system/user text is, etc.) is NOT regulated by this parameter; that is each app’s responsibility. Prompt count and per-prompt content size combine multiplicatively for GPU memory, so the two can blow up together. Catastrophic example: <code class="language-plaintext highlighter-rouge">tfSamplingMode=all</code> on a TimeFrame without <code class="language-plaintext highlighter-rouge">targets</code> expands that TF into one image per native-FPS frame (300 images for a 10-second TF at 30fps); <code class="language-plaintext highlighter-rouge">parallelPrompts=4</code> then runs 4 such prompts in one forward pass (~1200 images), guaranteed OOM. Keep at <code class="language-plaintext highlighter-rouge">1</code> on memory-tight setups; raise only when per-prompt content is small and bounded.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">HuggingFaceTB/SmolVLM2-2.2B-Instruct</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">HuggingFaceTB/SmolVLM2-2.2B-Instruct</code></em></strong></li>
    </ul>

    <blockquote>
      <p>HuggingFace model identifier to use for this request. Must be one of the model ids declared in this app’s <code class="language-plaintext highlighter-rouge">analyzer_versions</code>; the SDK pins the corresponding commit hash at load time. When the app ships a single model (the typical case), this parameter defaults to that one model and can be omitted. Pass the full HF model id (e.g. <code class="language-plaintext highlighter-rouge">org/repo-name</code>); URL-encoding the <code class="language-plaintext highlighter-rouge">/</code> is optional.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfSamplingMode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">representatives</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">representatives</code></em></strong>, <code class="language-plaintext highlighter-rouge">single</code>, <code class="language-plaintext highlighter-rouge">all</code></li>
    </ul>

    <blockquote>
      <p>Sampling mode for TimeFrame annotations. Has no effect when the app does not process TimeFrames. “representatives” uses all representative timepoints if present, otherwise skips the TimeFrame. “single” uses the middle representative if present, otherwise extracts an image from the midpoint of the start/end interval (midpoint is calculated by floor division of the sum of start and end). “all” uses all target timepoints if present, otherwise extracts all images from the time interval.</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://clams.ai/vocabulary/type/TextDocument/v2">http://clams.ai/vocabulary/type/TextDocument/v2</a>
    <ul>
      <li><em>origins</em> = “*”</li>
      <li><em>origination</em> = “derived”</li>
    </ul>

    <blockquote>
      <p>Caption text generated by the SmolVLM2 model for each processed image. The <code class="language-plaintext highlighter-rouge">origins</code> property points to the <code class="language-plaintext highlighter-rouge">TimePoint</code> anchoring the image (an existing TimePoint reused when one already backs the image, or a TimePoint newly created in this view when the image was sampled from a TimeFrame interval without a backing TimePoint).</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://clams.ai/vocabulary/type/Alignment/v1">http://clams.ai/vocabulary/type/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignment between each parent TimeFrame and the TextDocument(s) derived from it.</p>
    </blockquote>
  </li>
  <li><a href="http://clams.ai/vocabulary/type/TimePoint/v5">http://clams.ai/vocabulary/type/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>timePoint</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Optional output. Newly-created TimePoint annotations for images that were sampled from a TimeFrame interval without an existing backing TimePoint (see <code class="language-plaintext highlighter-rouge">tfSamplingMode</code>). When every sampled image came from an existing TimePoint, no TimePoints are created</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.5)</title><link href="https://apps.clams.ai/swt-detection/v8.5/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.5)" /><published>2026-03-22T15:35:18+00:00</published><updated>2026-03-22T15:35:18+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.5/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.5/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2026-03-22T15:35:18+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.5">ghcr.io/clamsproject/app-swt-detection:v8.5</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>New models with wider MLP classification head design</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.5">http://apps.clams.ai/swt-detection/v8.5</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.5">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnextv2_large</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelBatchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">200</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in a batch for classification. Smaller batch sizes will use less memory but may be slower. The default value of 200 is set to be the safely maximum size for “large” model running on desktop-grade GPU (12GB VRAM). Only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">-</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">-</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfSamplingMode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">representatives</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">representatives</code></em></strong>, <code class="language-plaintext highlighter-rouge">single</code>, <code class="language-plaintext highlighter-rouge">all</code></li>
    </ul>

    <blockquote>
      <p>Sampling mode for TimeFrame annotations. Has no effect when the app does not process TimeFrames. “representatives” uses all representative timepoints if present, otherwise skips the TimeFrame. “single” uses the middle representative if present, otherwise extracts a frame from the midpoint of the start/end interval (midpoint is calculated by floor division of the sum of start and end). “all” uses all target timepoints if present, otherwise extracts all frames from the time interval.</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “CR”, “E”, “F”, “GLOTW”, “IN”, “KU”, “M”, “P”, “S”, “Y”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">SmolVLM2 Captioner (v0.5)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v0.5/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v0.5)" /><published>2026-02-27T20:09:36+00:00</published><updated>2026-02-27T20:09:36+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v0.5/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v0.5/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2026-02-27T20:09:36+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v0.5">ghcr.io/clamsproject/app-smolvlm2-captioner:v0.5</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies SmolVLM2-2.2B-Instruct multimodal model to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v0.5">http://apps.clams.ai/smolvlm2-captioner/v0.5</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v0.5">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultSystemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default system prompt to use for all timeframes. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior. The processor will format this properly using its chat template.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPromptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to system prompts. Must be formatted as “IN_LABEL:SYSTEM_PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">num_beams</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of beams for beam search during text generation. Default is 1. Higher values may improve quality but increase generation time.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">12</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in each batch. Default is 12. Higher values may improve throughput but require more memory.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allRepresentatives</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Default setting for processing all representative TimePoints in each TimeFrame. When true, all representatives are processed instead of just the first one. This can be overridden per-label in the config file using the all_representatives mapping (e.g., all_representatives: {slate: true, chyron: false}). Default is false (only the first representative is processed).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">SmolVLM2 Captioner (v0.4)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v0.4/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v0.4)" /><published>2026-02-26T05:05:42+00:00</published><updated>2026-02-26T05:05:42+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v0.4/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v0.4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2026-02-26T05:05:42+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v0.4">ghcr.io/clamsproject/app-smolvlm2-captioner:v0.4</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies SmolVLM2-2.2B-Instruct multimodal model to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v0.4">http://apps.clams.ai/smolvlm2-captioner/v0.4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v0.4">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultSystemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default system prompt to use for all timeframes. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior. The processor will format this properly using its chat template.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPromptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to system prompts. Must be formatted as “IN_LABEL:SYSTEM_PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">num_beams</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of beams for beam search during text generation. Default is 1. Higher values may improve quality but increase generation time.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">12</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in each batch. Default is 12. Higher values may improve throughput but require more memory.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allRepresentatives</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Default setting for processing all representative TimePoints in each TimeFrame. When true, all representatives are processed instead of just the first one. This can be overridden per-label in the config file using the all_representatives mapping (e.g., all_representatives: {slate: true, chyron: false}). Default is false (only the first representative is processed).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Pyscenedetect Wrapper (v4)</title><link href="https://apps.clams.ai/pyscenedetect-wrapper/v4/index.html" rel="alternate" type="text/html" title="Pyscenedetect Wrapper (v4)" /><published>2026-02-10T04:17:11+00:00</published><updated>2026-02-10T04:17:11+00:00</updated><id>https://apps.clams.ai/pyscenedetect-wrapper/v4/index</id><content type="html" xml:base="https://apps.clams.ai/pyscenedetect-wrapper/v4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2026-02-10T04:17:11+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/pkgs/container/app-pyscenedetect-wrapper/v4">ghcr.io/clamsproject/app-pyscenedetect-wrapper:v4</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps PySceneDetect and performs shot boundary detection on input videos</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/pyscenedetect-wrapper/v4">http://apps.clams.ai/pyscenedetect-wrapper/v4</a></li>
  <li>App License: Apache2</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper">https://github.com/clamsproject/app-pyscenedetect-wrapper</a> (<a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/tree/v4">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.6.1</li>
  <li>Analyzer License: BSD-3</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">mode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">content</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">content</code></em></strong>, <code class="language-plaintext highlighter-rouge">threshold</code>, <code class="language-plaintext highlighter-rouge">adaptive</code></li>
    </ul>

    <blockquote>
      <p>pick a scene detector algorithm, see http://scenedetect.com/projects/Manual/en/latest/cli/detectors.html</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">27</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value to use in the detection algorithm. Note that the meaning of this numerical value differs for different detector algorithms.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>label</em> = “shot”</li>
      <li><em>timeUnit</em> = “frame”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">SmolVLM2 Captioner (v0.3)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v0.3/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v0.3)" /><published>2026-01-28T15:06:18+00:00</published><updated>2026-01-28T15:06:18+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v0.3/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v0.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2026-01-28T15:06:18+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v0.3">ghcr.io/clamsproject/app-smolvlm2-captioner:v0.3</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies SmolVLM2-2.2B-Instruct multimodal model to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v0.3">http://apps.clams.ai/smolvlm2-captioner/v0.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v0.3">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultSystemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default system prompt to use for all timeframes. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior. The processor will format this properly using its chat template.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPromptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to system prompts. Must be formatted as “IN_LABEL:SYSTEM_PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">num_beams</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of beams for beam search during text generation. Default is 1. Higher values may improve quality but increase generation time.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">12</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in each batch. Default is 12. Higher values may improve throughput but require more memory.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allRepresentatives</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Default setting for processing all representative TimePoints in each TimeFrame. When true, all representatives are processed instead of just the first one. This can be overridden per-label in the config file using the all_representatives mapping (e.g., all_representatives: {slate: true, chyron: false}). Default is false (only the first representative is processed).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">SmolVLM2 Captioner (v0.2)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v0.2/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v0.2)" /><published>2026-01-28T03:14:45+00:00</published><updated>2026-01-28T03:14:45+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v0.2/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v0.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2026-01-28T03:14:45+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v0.2">ghcr.io/clamsproject/app-smolvlm2-captioner:v0.2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies SmolVLM2-2.2B-Instruct multimodal model to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v0.2">http://apps.clams.ai/smolvlm2-captioner/v0.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v0.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultSystemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default system prompt to use for all timeframes. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior. The processor will format this properly using its chat template.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPromptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to system prompts. Must be formatted as “IN_LABEL:SYSTEM_PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">num_beams</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of beams for beam search during text generation. Default is 1. Higher values may improve quality but increase generation time.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">12</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in each batch. Default is 12. Higher values may improve throughput but require more memory.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.4)</title><link href="https://apps.clams.ai/swt-detection/v8.4/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.4)" /><published>2025-12-14T01:08:09+00:00</published><updated>2025-12-14T01:08:09+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.4/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-12-14T01:08:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.4">ghcr.io/clamsproject/app-swt-detection:v8.4</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.4">http://apps.clams.ai/swt-detection/v8.4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.4">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnextv2_large</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelBatchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">200</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in a batch for classification. Smaller batch sizes will use less memory but may be slower. The default value of 200 is set to be the safely maximum size for “large” model running on desktop-grade GPU (12GB VRAM). Only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">-</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">-</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “CR”, “E”, “F”, “GLOTW”, “IN”, “KU”, “M”, “P”, “S”, “Y”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">SmolVLM2 Captioner (v0.1)</title><link href="https://apps.clams.ai/smolvlm2-captioner/v0.1/index.html" rel="alternate" type="text/html" title="SmolVLM2 Captioner (v0.1)" /><published>2025-11-20T15:41:04+00:00</published><updated>2025-11-20T15:41:04+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/v0.1/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/v0.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2025-11-20T15:41:04+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-smolvlm2-captioner/pkgs/container/app-smolvlm2-captioner/v0.1">ghcr.io/clamsproject/app-smolvlm2-captioner:v0.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies SmolVLM2-2.2B-Instruct multimodal model to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/smolvlm2-captioner/v0.1">http://apps.clams.ai/smolvlm2-captioner/v0.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-smolvlm2-captioner">https://github.com/clamsproject/app-smolvlm2-captioner</a> (<a href="https://github.com/clamsproject/app-smolvlm2-captioner/tree/v0.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultSystemPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default system prompt to use for all timeframes. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior. The processor will format this properly using its chat template.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">systemPromptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to system prompts. Must be formatted as “IN_LABEL:SYSTEM_PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. System prompts are passed to the model using the messages format with role=”system”, providing context or instructions that guide the model’s behavior.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">num_beams</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of beams for beam search during text generation. Default is 1. Higher values may improve quality but increase generation time.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">12</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in each batch. Default is 12. Higher values may improve throughput but require more memory.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Tonedetection (v2.0)</title><link href="https://apps.clams.ai/tonedetection/v2.0/index.html" rel="alternate" type="text/html" title="Tonedetection (v2.0)" /><published>2025-11-20T08:01:02+00:00</published><updated>2025-11-20T08:01:02+00:00</updated><id>https://apps.clams.ai/tonedetection/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/tonedetection/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-20T08:01:02+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tonedetection/pkgs/container/app-tonedetection/v2.0">ghcr.io/clamsproject/app-tonedetection:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>What’s new</p>
      <ul>
        <li>updated to the latest SDK</li>
        <li>replaced aubio to avoid installation quirks</li>
        <li>removed <code class="language-plaintext highlighter-rouge">timeUnit</code> and <code class="language-plaintext highlighter-rouge">sampleSize</code> params</li>
        <li>renamed <code class="language-plaintext highlighter-rouge">lengthThreshold</code> param to <code class="language-plaintext highlighter-rouge">minToneDuration</code></li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects spans of monotonic audio within an audio file</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tonedetection/v2.0">http://apps.clams.ai/tonedetection/v2.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tonedetection">https://github.com/clamsproject/app-tonedetection</a> (<a href="https://github.com/clamsproject/app-tonedetection/tree/v2.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minToneDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum length threshold (in ms)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3600000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>stop point for audio processing (in ms). Defaults to the length of the file</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tolerance</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value for a “match” within audio processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>label</em> = “tone”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">inaSpeechSegmenter Wrapper (v2.1)</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.1/index.html" rel="alternate" type="text/html" title="inaSpeechSegmenter Wrapper (v2.1)" /><published>2025-11-14T01:22:11+00:00</published><updated>2025-11-14T01:22:11+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-14T01:22:11+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/pkgs/container/app-inaspeechsegmenter-wrapper/v2.1">ghcr.io/clamsproject/app-inaspeechsegmenter-wrapper:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>dependency version updates, fixes compat issue with new MMIF</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/inaspeechsegmenter-wrapper/v2.1">http://apps.clams.ai/inaspeechsegmenter-wrapper/v2.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper">https://github.com/clamsproject/app-inaspeechsegmenter-wrapper</a> (<a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/tree/v2.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.0</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">silenceRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>percentage ratio (0-100) of audio energy to to determine silence, ratio to mean every of the input audio.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“silence”, “speech”, “noise”, “music”]</li>
    </ul>

    <blockquote>
      <p>The INA semgmenter uses 5-way classification ([‘noEnergy’, ‘female’, ‘male’, ‘noise’, ‘music’]) and this wrapper remaps the labels to [‘silence’, ‘speech’, ‘noise’, ‘music’], by 1) renaming <code class="language-plaintext highlighter-rouge">noEnergy</code> to <code class="language-plaintext highlighter-rouge">silence</code> 2) collapsing <code class="language-plaintext highlighter-rouge">female</code> and <code class="language-plaintext highlighter-rouge">male</code> into <code class="language-plaintext highlighter-rouge">speech</code> (leaving additional <code class="language-plaintext highlighter-rouge">gender</code> property). Note that the time frame annotations do not exhaustively cover the input audio, but only the segments.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Spoken Language Identification (v0.3)</title><link href="https://apps.clams.ai/spoken-lid/v0.3/index.html" rel="alternate" type="text/html" title="Spoken Language Identification (v0.3)" /><published>2025-11-11T00:51:26+00:00</published><updated>2025-11-11T00:51:26+00:00</updated><id>https://apps.clams.ai/spoken-lid/v0.3/index</id><content type="html" xml:base="https://apps.clams.ai/spoken-lid/v0.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-11T00:51:26+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spoken-lid/pkgs/container/app-spoken-lid/v0.3">ghcr.io/clamsproject/app-spoken-lid:v0.3</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Chunk-level language ID over audio based on OpenAI Whisper</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spoken-lid/v0.3">http://apps.clams.ai/spoken-lid/v0.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spoken-lid">https://github.com/clamsproject/app-spoken-lid</a> (<a href="https://github.com/clamsproject/app-spoken-lid/tree/v0.3">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: v20250625</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">turbo</code></li>
    </ul>

    <blockquote>
      <p>Whisper model size</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">chunk</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>chunk/window length in seconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">top</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>top-k language scores</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>number of windows processed in a batch</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
      <li><em>labalSet</em> = “https://raw.githubusercontent.com/openai/whisper/refs/tags/v20250625/whisper/tokenizer.py”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS NFA Wrapper (v0.1)</title><link href="https://apps.clams.ai/nfa-wrapper/v0.1/index.html" rel="alternate" type="text/html" title="CLAMS NFA Wrapper (v0.1)" /><published>2025-11-09T18:36:09+00:00</published><updated>2025-11-09T18:36:09+00:00</updated><id>https://apps.clams.ai/nfa-wrapper/v0.1/index</id><content type="html" xml:base="https://apps.clams.ai/nfa-wrapper/v0.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-09T18:36:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-nfa-wrapper/pkgs/container/app-nfa-wrapper/v0.1">ghcr.io/clamsproject/app-nfa-wrapper:v0.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>experiment first release of the app</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p>**Wraps the <a href="https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/tools/nemo_forced_aligner.html">NVIDIA NeMo Forced Aligner tool</a> to temporally align transcribed text with its audio source. **</p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/nfa-wrapper/v0.1">http://apps.clams.ai/nfa-wrapper/v0.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-nfa-wrapper">https://github.com/clamsproject/app-nfa-wrapper</a> (<a href="https://github.com/clamsproject/app-nfa-wrapper/tree/v0.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 454fabc</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>

    <blockquote>
      <p>Text content transcribed from audio input with no existing annotations.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">fc_hybrid</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">fc_hybrid</code></em></strong>, <code class="language-plaintext highlighter-rouge">parakeet</code>, <code class="language-plaintext highlighter-rouge">conformer</code>, <code class="language-plaintext highlighter-rouge">fc_ctc</code></li>
    </ul>

    <blockquote>
      <p>NeMo ASR model to use. Choices: fc_hybrid, parakeet, conformer, fc_ctc. By default, the fc_hybrid model will be used.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Token/v1">http://mmif.clams.ai/vocabulary/Token/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Token from original text split on whitespace. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of the token. <code class="language-plaintext highlighter-rouge">start</code> and <code class="language-plaintext highlighter-rouge">end</code> properties indicate position of token in entire text. <code class="language-plaintext highlighter-rouge">document</code> property identifies source text document.</p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>frameType</em> = “speech”</li>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>

    <blockquote>
      <p>TimeFrame annotation representing the source audio segment corresponding to a given transcribed token, with <code class="language-plaintext highlighter-rouge">start</code> and <code class="language-plaintext highlighter-rouge">end</code> times given in milliseconds.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignment between <code class="language-plaintext highlighter-rouge">Token</code> and <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.3)</title><link href="https://apps.clams.ai/swt-detection/v8.3/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.3)" /><published>2025-11-08T01:19:05+00:00</published><updated>2025-11-08T01:19:05+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.3/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-08T01:19:05+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.3">ghcr.io/clamsproject/app-swt-detection:v8.3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This release includes a new parameter and a bugfix</p>
      <ul>
        <li><code class="language-plaintext highlighter-rouge">tpModelBatchSize</code> parameter is added to control memory usage for TP annotation</li>
        <li>fixed bug when user provided <code class="language-plaintext highlighter-rouge">tfLabelMap</code> doesn’t match TP’s labelSet</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.3">http://apps.clams.ai/swt-detection/v8.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.3">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnextv2_large</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelBatchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">200</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of images to process in a batch for classification. Smaller batch sizes will use less memory but may be slower. The default value of 200 is set to be the safely maximum size for “large” model running on desktop-grade GPU (12GB VRAM). Only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">-</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">-</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">P</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’, ‘<code class="language-plaintext highlighter-rouge">-</code>:<code class="language-plaintext highlighter-rouge">Neg</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “CR”, “E”, “F”, “GLOTW”, “IN”, “KU”, “M”, “P”, “S”, “Y”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Spoken Language Identification (v0.2)</title><link href="https://apps.clams.ai/spoken-lid/v0.2/index.html" rel="alternate" type="text/html" title="Spoken Language Identification (v0.2)" /><published>2025-11-06T10:31:10+00:00</published><updated>2025-11-06T10:31:10+00:00</updated><id>https://apps.clams.ai/spoken-lid/v0.2/index</id><content type="html" xml:base="https://apps.clams.ai/spoken-lid/v0.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-06T10:31:10+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spoken-lid/pkgs/container/app-spoken-lid/v0.2">ghcr.io/clamsproject/app-spoken-lid:v0.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>updated to the new whisper (python dependecy compatibilty)</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Chunk-level language ID over audio based on OpenAI Whisper</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spoken-lid/v0.2">http://apps.clams.ai/spoken-lid/v0.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spoken-lid">https://github.com/clamsproject/app-spoken-lid</a> (<a href="https://github.com/clamsproject/app-spoken-lid/tree/v0.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: v20250625</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">turbo</code></li>
    </ul>

    <blockquote>
      <p>Whisper model size</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">chunk</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>chunk/window length in seconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">top</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>top-k language scores</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>number of windows processed in a batch</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
      <li><em>labalSet</em> = “https://raw.githubusercontent.com/openai/whisper/refs/tags/v20250625/whisper/tokenizer.py”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v15)</title><link href="https://apps.clams.ai/whisper-wrapper/v15/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v15)" /><published>2025-11-06T00:37:40+00:00</published><updated>2025-11-06T00:37:40+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v15/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v15/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-06T00:37:40+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v15">ghcr.io/clamsproject/app-whisper-wrapper:v15</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>updated to whisper (2025 june ver)</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v15">http://apps.clams.ai/whisper-wrapper/v15</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v15">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20250625</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">turbo</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) name of the Whisper model to use</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">language</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) language spoken in the audio, specify None to perform language detection</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">True</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from openai-whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.2)</title><link href="https://apps.clams.ai/swt-detection/v8.2/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.2)" /><published>2025-11-06T00:30:34+00:00</published><updated>2025-11-06T00:30:34+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.2/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-06T00:30:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.2">ghcr.io/clamsproject/app-swt-detection:v8.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>image processor comes with convnext models are now properly set to use the same loader as they are originally saved</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.2">http://apps.clams.ai/swt-detection/v8.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnextv2_large</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “CR”, “E”, “F”, “GLOTW”, “IN”, “KU”, “M”, “P”, “S”, “Y”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v14)</title><link href="https://apps.clams.ai/whisper-wrapper/v14/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v14)" /><published>2025-11-05T20:18:24+00:00</published><updated>2025-11-05T20:18:24+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v14/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v14/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-05T20:18:24+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v14">ghcr.io/clamsproject/app-whisper-wrapper:v14</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Major update includes …</p>
      <ul>
        <li><code class="language-plaintext highlighter-rouge">modelSize</code> parameter is now <code class="language-plaintext highlighter-rouge">model</code></li>
        <li><code class="language-plaintext highlighter-rouge">modelLang</code> parameter is now <code class="language-plaintext highlighter-rouge">language</code><br />
(above changes to match openai’s CLI argument names)</li>
        <li>fixed app crashing when word-level timestamping outputs hallucinations</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v14">http://apps.clams.ai/whisper-wrapper/v14</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v14">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20240930</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">turbo</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) name of the Whisper model to use</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">language</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) language spoken in the audio, specify None to perform language detection</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">True</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from openai-whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from openai-whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.1)</title><link href="https://apps.clams.ai/swt-detection/v8.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.1)" /><published>2025-11-05T20:04:52+00:00</published><updated>2025-11-05T20:04:52+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-05T20:04:52+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.1">ghcr.io/clamsproject/app-swt-detection:v8.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>fixed import errors and outdated metadata</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.1">http://apps.clams.ai/swt-detection/v8.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">convnextv2_large</code></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “CR”, “E”, “F”, “GLOTW”, “IN”, “KU”, “M”, “P”, “S”, “Y”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Spoken Language Identification (v0.1)</title><link href="https://apps.clams.ai/spoken-lid/v0.1/index.html" rel="alternate" type="text/html" title="Spoken Language Identification (v0.1)" /><published>2025-11-05T19:58:01+00:00</published><updated>2025-11-05T19:58:01+00:00</updated><id>https://apps.clams.ai/spoken-lid/v0.1/index</id><content type="html" xml:base="https://apps.clams.ai/spoken-lid/v0.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-05T19:58:01+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spoken-lid/pkgs/container/app-spoken-lid/v0.1">ghcr.io/clamsproject/app-spoken-lid:v0.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>experimental release of spoken LID app prototype based on whisper</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Chunk-level language ID over audio based on OpenAI Whisper</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spoken-lid/v0.1">http://apps.clams.ai/spoken-lid/v0.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spoken-lid">https://github.com/clamsproject/app-spoken-lid</a> (<a href="https://github.com/clamsproject/app-spoken-lid/tree/v0.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: v20240930</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">turbo</code></li>
    </ul>

    <blockquote>
      <p>Whisper model size</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">chunk</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>chunk/window length in seconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">top</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>top-k language scores</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">batchSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>number of windows processed in a batch</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
      <li><em>labalSet</em> = “https://raw.githubusercontent.com/openai/whisper/refs/tags/v20240930/whisper/tokenizer.py”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v8.0)</title><link href="https://apps.clams.ai/swt-detection/v8.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v8.0)" /><published>2025-11-05T02:04:38+00:00</published><updated>2025-11-05T02:04:38+00:00</updated><id>https://apps.clams.ai/swt-detection/v8.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v8.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-11-05T02:04:38+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v8.0">ghcr.io/clamsproject/app-swt-detection:v8.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v8.0">http://apps.clams.ai/swt-detection/v8.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v8.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">convnextv2_tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">convnextv2_large</code></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">collapse-close</code>, <code class="language-plaintext highlighter-rouge">collapse-close-reduce-difficulty</code>, <code class="language-plaintext highlighter-rouge">collapse-close-bin-lower-thirds</code>, <code class="language-plaintext highlighter-rouge">ignore-difficulties</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">GLOTW</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">KU</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">IN</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">CR</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS docTR Wrapper (v1.4)</title><link href="https://apps.clams.ai/doctr-wrapper/v1.4/index.html" rel="alternate" type="text/html" title="CLAMS docTR Wrapper (v1.4)" /><published>2025-10-03T16:46:01+00:00</published><updated>2025-10-03T16:46:01+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/v1.4/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/v1.4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-10-03T16:46:01+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-doctr-wrapper/pkgs/container/app-doctr-wrapper/v1.4">ghcr.io/clamsproject/app-doctr-wrapper:v1.4</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps the <a href="https://pypi.org/project/python-doctr">docTR, End-to-End OCR model</a>. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents. See descriptions for I/O types below  for details on how annotations are aligned to each other.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/doctr-wrapper/v1.4">http://apps.clams.ai/doctr-wrapper/v1.4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-doctr-wrapper">https://github.com/clamsproject/app-doctr-wrapper</a> (<a href="https://github.com/clamsproject/app-doctr-wrapper/tree/v1.4">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.1</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
      <li><em>label</em> = “*”</li>
    </ul>

    <blockquote>
      <p>The <em>labeled</em> TimeFrame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment. Generic TimeFrames with no <code class="language-plaintext highlighter-rouge">label</code> property will not be processed.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “words” in the input images. <code class="language-plaintext highlighter-rouge">text</code> and <code class="language-plaintext highlighter-rouge">word</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “lines” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “blocks” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v5">http://mmif.clams.ai/vocabulary/BoundingBox/v5</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">TesseractOCR Wrapper (v2.1)</title><link href="https://apps.clams.ai/tesseract/v2.1/index.html" rel="alternate" type="text/html" title="TesseractOCR Wrapper (v2.1)" /><published>2025-09-05T18:11:26+00:00</published><updated>2025-09-05T18:11:26+00:00</updated><id>https://apps.clams.ai/tesseract/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/tesseract/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-09-05T18:11:26+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper/pkgs/container/app-tesseractocr-wrapper/v2.1">ghcr.io/clamsproject/app-tesseractocr-wrapper:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>SDK update</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results. Currenly only support English language.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tesseract/v2.1">http://apps.clams.ai/tesseract/v2.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper">https://github.com/clamsproject/app-tesseractocr-wrapper</a> (<a href="https://github.com/clamsproject/app-tesseractocr-wrapper/tree/v2.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: tesseract5.3</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
    </ul>

    <blockquote>
      <p>The Time frame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “words” in the input images. <code class="language-plaintext highlighter-rouge">token</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “lines” in the input images. <code class="language-plaintext highlighter-rouge">sentence</code> property from LAPPS vocab stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “blocks” in the input images. <code class="language-plaintext highlighter-rouge">paragraph</code> property from LAPPS vocab stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v5">http://mmif.clams.ai/vocabulary/BoundingBox/v5</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Parakeet Wrapper (v1.0)</title><link href="https://apps.clams.ai/parakeet-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Parakeet Wrapper (v1.0)" /><published>2025-07-29T15:07:13+00:00</published><updated>2025-07-29T15:07:13+00:00</updated><id>https://apps.clams.ai/parakeet-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/parakeet-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/shel-ho">shel-ho</a></li>
  <li>Submission Time: 2025-07-29T15:07:13+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-parakeet-wrapper/pkgs/container/app-parakeet-wrapper/v1.0">ghcr.io/clamsproject/app-parakeet-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for NVIDIA NeMo Parakeet ASR models available on huggingface-hub with support for punctuation, capitalization, and word-level timestamping.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/parakeet-wrapper/v1.0">http://apps.clams.ai/parakeet-wrapper/v1.0</a></li>
  <li>App License: Apache-2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-parakeet-wrapper">https://github.com/clamsproject/app-parakeet-wrapper</a> (<a href="https://github.com/clamsproject/app-parakeet-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20250714</li>
  <li>Analyzer License: cc-by-4.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">contextSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">400</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Local attention context size for the model. Can be any positive integer, or 0 to set global (full-context) attention. Larger context sizes may improve performance but require a lot more memory. For desktop CUDA device with 12GB VRAM, a context size of around 100 is recommended for full utilization of VRAM. Default is 400</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6b</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">110m</code>, <strong><em><code class="language-plaintext highlighter-rouge">0.6b</code></em></strong>, <code class="language-plaintext highlighter-rouge">1.1b</code></li>
    </ul>

    <blockquote>
      <p>Parakeet model size to use. Choices: 110m, 0.6b, 1.1b</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.7)</title><link href="https://apps.clams.ai/swt-detection/v7.7/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.7)" /><published>2025-07-28T15:43:20+00:00</published><updated>2025-07-28T15:43:20+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.7/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.7/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-07-28T15:43:20+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.7">ghcr.io/clamsproject/app-swt-detection:v7.7</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Updated to the latest clams SDK, annotation ID format changed to “long-form”.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.7">http://apps.clams.ai/swt-detection/v7.7</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.7">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_lg</code>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v6">http://mmif.clams.ai/vocabulary/TimeFrame/v6</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v5">http://mmif.clams.ai/vocabulary/TimePoint/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS wrapper for spaCy NLP (v2.1)</title><link href="https://apps.clams.ai/spacy-wrapper/v2.1/index.html" rel="alternate" type="text/html" title="CLAMS wrapper for spaCy NLP (v2.1)" /><published>2025-07-26T21:02:46+00:00</published><updated>2025-07-26T21:02:46+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-07-26T21:02:46+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spacy-wrapper/pkgs/container/app-spacy-wrapper/v2.1">ghcr.io/clamsproject/app-spacy-wrapper:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>CLAMS SDK and spacy version bump</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply spaCy NLP to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spacy-wrapper/v2.1">http://apps.clams.ai/spacy-wrapper/v2.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spacy-wrapper">https://github.com/clamsproject/app-spacy-wrapper</a> (<a href="https://github.com/clamsproject/app-spacy-wrapper/tree/v2.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 3.7</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretokenized</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean parameter to set the app to use existing tokenization, if available, for text documents for NLP processing. Useful to process ASR documents, for example.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#pos">http://vocab.lappsgrid.org/Token#pos</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#lemma">http://vocab.lappsgrid.org/Token#lemma</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NounChunk">http://vocab.lappsgrid.org/NounChunk</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Heuristic Chyron Understanding (v0.2)</title><link href="https://apps.clams.ai/heuristic-chyron-understanding/v0.2/index.html" rel="alternate" type="text/html" title="Heuristic Chyron Understanding (v0.2)" /><published>2025-07-14T23:10:14+00:00</published><updated>2025-07-14T23:10:14+00:00</updated><id>https://apps.clams.ai/heuristic-chyron-understanding/v0.2/index</id><content type="html" xml:base="https://apps.clams.ai/heuristic-chyron-understanding/v0.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-07-14T23:10:14+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-heuristic-chyron-understanding/pkgs/container/app-heuristic-chyron-understanding/v0.2">ghcr.io/clamsproject/app-heuristic-chyron-understanding:v0.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Initial release with naive line parsing and name normalization</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Prototype to convert chyron text from docTR/Tesseract/LLaVA MMIF outputinto a name and list of attributes.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/heuristic-chyron-understanding/v0.2">http://apps.clams.ai/heuristic-chyron-understanding/v0.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-heuristic-chyron-understanding">https://github.com/clamsproject/app-heuristic-chyron-understanding</a> (<a href="https://github.com/clamsproject/app-heuristic-chyron-understanding/tree/v0.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>

    <blockquote>
      <p>Text content transcribed from video input by docTR/Tesseract/LLAVA.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">note4mode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean to set the app to run in “note-4” mode and to take the second line (if available) from the input text to be the <code class="language-plaintext highlighter-rouge">name-normalized</code> value. The default is false, which means the app will try to generate normalization from<code class="language-plaintext highlighter-rouge">name-as-written</code> (from the first line) value.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>document</em> = “*”</li>
      <li><em>origin</em> = “*”</li>
      <li><em>provenance</em> = “derived”</li>
      <li><em>mime</em> = “application/json”</li>
    </ul>

    <blockquote>
      <p>Reformatted chyron text. <code class="language-plaintext highlighter-rouge">document</code> property stores the ID of the original source <code class="language-plaintext highlighter-rouge">VideoDocument</code>. <code class="language-plaintext highlighter-rouge">origin</code> property stores the ID of the original OCR <code class="language-plaintext highlighter-rouge">TextDocument</code> annotation. Reformatted text is escaped JSON string with three fields: <code class="language-plaintext highlighter-rouge">name-as-written</code>, <code class="language-plaintext highlighter-rouge">name-normalized</code>, and <code class="language-plaintext highlighter-rouge">attributes</code>.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">TesseractOCR Wrapper (v2.0)</title><link href="https://apps.clams.ai/tesseract/v2.0/index.html" rel="alternate" type="text/html" title="TesseractOCR Wrapper (v2.0)" /><published>2025-07-02T02:52:55+00:00</published><updated>2025-07-02T02:52:55+00:00</updated><id>https://apps.clams.ai/tesseract/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/tesseract/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-07-02T02:52:55+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper/pkgs/container/app-tesseractocr-wrapper/v2.0">ghcr.io/clamsproject/app-tesseractocr-wrapper:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Updated to Tesseract5, and output MMIF format matches other TR apps</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results. Currenly only support English language.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tesseract/v2.0">http://apps.clams.ai/tesseract/v2.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper">https://github.com/clamsproject/app-tesseractocr-wrapper</a> (<a href="https://github.com/clamsproject/app-tesseractocr-wrapper/tree/v2.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: tesseract5.3</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
    </ul>

    <blockquote>
      <p>The Time frame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “words” in the input images. <code class="language-plaintext highlighter-rouge">token</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “lines” in the input images. <code class="language-plaintext highlighter-rouge">sentence</code> property from LAPPS vocab stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized tesseract “blocks” in the input images. <code class="language-plaintext highlighter-rouge">paragraph</code> property from LAPPS vocab stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS docTR Wrapper (v1.3)</title><link href="https://apps.clams.ai/doctr-wrapper/v1.3/index.html" rel="alternate" type="text/html" title="CLAMS docTR Wrapper (v1.3)" /><published>2025-07-02T02:33:54+00:00</published><updated>2025-07-02T02:33:54+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/v1.3/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/v1.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-07-02T02:33:54+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-doctr-wrapper/pkgs/container/app-doctr-wrapper/v1.3">ghcr.io/clamsproject/app-doctr-wrapper:v1.3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>fixed critical bug that caused app crash</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps the <a href="https://pypi.org/project/python-doctr">docTR, End-to-End OCR model</a>. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents. See descriptions for I/O types below  for details on how annotations are aligned to each other.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/doctr-wrapper/v1.3">http://apps.clams.ai/doctr-wrapper/v1.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-doctr-wrapper">https://github.com/clamsproject/app-doctr-wrapper</a> (<a href="https://github.com/clamsproject/app-doctr-wrapper/tree/v1.3">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.1</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
      <li><em>label</em> = “*”</li>
    </ul>

    <blockquote>
      <p>The <em>labeled</em> TimeFrame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment. Generic TimeFrames with no <code class="language-plaintext highlighter-rouge">label</code> property will not be processed.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “words” in the input images. <code class="language-plaintext highlighter-rouge">text</code> and <code class="language-plaintext highlighter-rouge">word</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “lines” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “blocks” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v13)</title><link href="https://apps.clams.ai/whisper-wrapper/v13/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v13)" /><published>2025-06-30T18:05:02+00:00</published><updated>2025-06-30T18:05:02+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v13/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v13/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/Brendayy">Brendayy</a></li>
  <li>Submission Time: 2025-06-30T18:05:02+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v13">ghcr.io/clamsproject/app-whisper-wrapper:v13</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Fixed .en suffix for whisper large and turbo models.* (closes #17)<br />
Added validation for unsupported modelLang codes;<br />
Updated wording in matadata.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v13">http://apps.clams.ai/whisper-wrapper/v13</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v13">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20240930</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code>, <code class="language-plaintext highlighter-rouge">turbo</code>, <code class="language-plaintext highlighter-rouge">tu</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> and non -<code class="language-plaintext highlighter-rouge">turbo</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> and <code class="language-plaintext highlighter-rouge">turbo</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3, turbo=tu)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20240930/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.6)</title><link href="https://apps.clams.ai/swt-detection/v7.6/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.6)" /><published>2025-06-24T14:20:12+00:00</published><updated>2025-06-24T14:20:12+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.6/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.6/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-06-24T14:20:12+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.6">ghcr.io/clamsproject/app-swt-detection:v7.6</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Made classification deterministic, meaning repeatedly running the app on the same video would result in the same <code class="language-plaintext highlighter-rouge">classifications</code> scores.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.6">http://apps.clams.ai/swt-detection/v7.6</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.6">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <code class="language-plaintext highlighter-rouge">convnext_lg</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS docTR Wrapper (v1.2)</title><link href="https://apps.clams.ai/doctr-wrapper/v1.2/index.html" rel="alternate" type="text/html" title="CLAMS docTR Wrapper (v1.2)" /><published>2025-05-23T01:46:09+00:00</published><updated>2025-05-23T01:46:09+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-05-23T01:46:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-doctr-wrapper/pkgs/container/app-doctr-wrapper/v1.2">ghcr.io/clamsproject/app-doctr-wrapper:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Minor update to support latest SDK</p>
      <ul>
        <li>updated to the latext SDK, and hence added <code class="language-plaintext highlighter-rouge">cli.py</code> entry point</li>
        <li>in various newly-generated annotation objects, all references to other annotation ID are now “long” form (<code class="language-plaintext highlighter-rouge">view_id:ann_id</code>) even when referring annotations within the same view</li>
        <li>now only processes <code class="language-plaintext highlighter-rouge">TimeFrame</code> with <code class="language-plaintext highlighter-rouge">label</code> property (effectively ignores time frames from, for example, whisper-wrapper)</li>
        <li>made model caching path inside the container consistent with other CLAMS apps (<code class="language-plaintext highlighter-rouge">/cache/doctr</code>)</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps the <a href="https://pypi.org/project/python-doctr">docTR, End-to-End OCR model</a>. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents. See descriptions for I/O types below  for details on how annotations are aligned to each other.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/doctr-wrapper/v1.2">http://apps.clams.ai/doctr-wrapper/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-doctr-wrapper">https://github.com/clamsproject/app-doctr-wrapper</a> (<a href="https://github.com/clamsproject/app-doctr-wrapper/tree/v1.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.1</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
      <li><em>label</em> = “*”</li>
    </ul>

    <blockquote>
      <p>The <em>labeled</em> TimeFrame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment. Generic TimeFrames with no <code class="language-plaintext highlighter-rouge">label</code> property will not be processed.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “words” in the input images. <code class="language-plaintext highlighter-rouge">text</code> and <code class="language-plaintext highlighter-rouge">word</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “lines” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “blocks” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.5)</title><link href="https://apps.clams.ai/swt-detection/v7.5/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.5)" /><published>2025-02-24T10:41:50+00:00</published><updated>2025-02-24T10:41:50+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.5/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.5/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-02-24T10:41:50+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.5">ghcr.io/clamsproject/app-swt-detection:v7.5</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Re-release of 7.4 with support for prebuilt image for arm64 architecture</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.5">http://apps.clams.ai/swt-detection/v7.5</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.5">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <code class="language-plaintext highlighter-rouge">convnext_lg</code></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">LLaVA Captioner (v1.2)</title><link href="https://apps.clams.ai/llava-captioner/v1.2/index.html" rel="alternate" type="text/html" title="LLaVA Captioner (v1.2)" /><published>2025-02-05T22:52:42+00:00</published><updated>2025-02-05T22:52:42+00:00</updated><id>https://apps.clams.ai/llava-captioner/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/llava-captioner/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2025-02-05T22:52:42+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-llava-captioner/pkgs/container/app-llava-captioner/v1.2">ghcr.io/clamsproject/app-llava-captioner:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies LLaVA v1.6 Mistral-7B to video frames for image captioning.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/llava-captioner/v1.2">http://apps.clams.ai/llava-captioner/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-llava-captioner">https://github.com/clamsproject/app-llava-captioner</a> (<a href="https://github.com/clamsproject/app-llava-captioner/tree/v1.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameInterval</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>The interval at which to extract frames from the video if there are no timeframe annotations. Default is every 30 frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">Describe what is shown in this video frame. Analyze the purpose of this frame in the context of a news video. Transcribe any text present.</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">config</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">config/default.yaml</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of the config file to use.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.4)</title><link href="https://apps.clams.ai/swt-detection/v7.4/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.4)" /><published>2025-02-03T22:07:54+00:00</published><updated>2025-02-03T22:07:54+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.4/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-02-03T22:07:54+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.4">ghcr.io/clamsproject/app-swt-detection:v7.4</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>fixed rare rounding error with certain combo of sample_rate and video duration</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.4">http://apps.clams.ai/swt-detection/v7.4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.4">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <code class="language-plaintext highlighter-rouge">convnext_lg</code></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.3)</title><link href="https://apps.clams.ai/swt-detection/v7.3/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.3)" /><published>2025-01-28T00:35:32+00:00</published><updated>2025-01-28T00:35:32+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.3/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2025-01-28T00:35:32+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.3">ghcr.io/clamsproject/app-swt-detection:v7.3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>minor bugfix in the second (<code class="language-plaintext highlighter-rouge">TimeFrame</code>) view metadata.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.3">http://apps.clams.ai/swt-detection/v7.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.3">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_lg</code>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.2)</title><link href="https://apps.clams.ai/swt-detection/v7.2/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.2)" /><published>2024-12-15T12:18:28+00:00</published><updated>2024-12-15T12:18:28+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.2/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-12-15T12:18:28+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.2">ghcr.io/clamsproject/app-swt-detection:v7.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Release to fix bugs…</p>
      <ul>
        <li>fixed unable to disable tfLabelMapPreset by nopreset value</li>
        <li>fixed some <code class="language-plaintext highlighter-rouge">tf-</code> parameters weren’t recorded in the timepoint-only view</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.2">http://apps.clams.ai/swt-detection/v7.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_lg</code>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code>, <code class="language-plaintext highlighter-rouge">nopreset</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.1)</title><link href="https://apps.clams.ai/swt-detection/v7.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.1)" /><published>2024-12-02T17:48:12+00:00</published><updated>2024-12-02T17:48:12+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-12-02T17:48:12+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.1">ghcr.io/clamsproject/app-swt-detection:v7.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Release with newly trained models:</p>
      <ul>
        <li>training data is expanded with new annotations: https://github.com/clamsproject/aapb-annotations/pull/98 and https://github.com/clamsproject/aapb-annotations/pull/104 .</li>
        <li>label <code class="language-plaintext highlighter-rouge">U</code> is added, total number of “raw” labels is now 18.</li>
        <li>in additional to <code class="language-plaintext highlighter-rouge">convnext_lg</code> and <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <code class="language-plaintext highlighter-rouge">convnext_small</code>-based models are added. The default is now <code class="language-plaintext highlighter-rouge">convnext_small</code> model.</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.1">http://apps.clams.ai/swt-detection/v7.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_small</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_lg</code>, <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_small</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>, set <code class="language-plaintext highlighter-rouge">tfLabelMapPreset=nopreset</code> to make sure that a preset does not override <code class="language-plaintext highlighter-rouge">tfLabelMap</code> when using this) Mapping of a label in the input TimePoint annotations to a new label of the stitched TimeFrame annotations. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When two+ TP labels are mapped to a TF  label, it essentially works as a “binning” operation. If no mapping is used, all the input labels are passed-through, meaning no change in both TP &amp; TF labelsets. However, when at least one label is mapped, all the other “unset” labels are mapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>) and if <code class="language-plaintext highlighter-rouge">-</code> does not exist in the TF labelset, it is added automatically. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">relaxed</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">noprebin</code>, <code class="language-plaintext highlighter-rouge">nomap</code>, <code class="language-plaintext highlighter-rouge">strict</code>, <code class="language-plaintext highlighter-rouge">simpler</code>, <code class="language-plaintext highlighter-rouge">simple</code>, <strong><em><code class="language-plaintext highlighter-rouge">relaxed</code></em></strong>, <code class="language-plaintext highlighter-rouge">binary-bars</code>, <code class="language-plaintext highlighter-rouge">binary-slate</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>, <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>, <code class="language-plaintext highlighter-rouge">binary-credits</code></li>
    </ul>

    <blockquote>
      <p>(See also <code class="language-plaintext highlighter-rouge">tfLabelMap</code>) Preset alias of a label mapping. If not <code class="language-plaintext highlighter-rouge">nopreset</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">tfLabelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">noprebin</code>: []<br />- <code class="language-plaintext highlighter-rouge">nomap</code>: []<br />- <code class="language-plaintext highlighter-rouge">strict</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Main</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Opening</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron-other</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">simpler</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br />- <code class="language-plaintext highlighter-rouge">simple</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’, ‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">M</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">O</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">W</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">L</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">G</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">F</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">E</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’, ‘<code class="language-plaintext highlighter-rouge">T</code>:<code class="language-plaintext highlighter-rouge">Other-text</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-bars</code>: [‘<code class="language-plaintext highlighter-rouge">B</code>:<code class="language-plaintext highlighter-rouge">Bars</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-slate</code>: [‘<code class="language-plaintext highlighter-rouge">S</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:H</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:C</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:D</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:B</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’, ‘<code class="language-plaintext highlighter-rouge">S:G</code>:<code class="language-plaintext highlighter-rouge">Slate</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-strict</code>: [‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron-person</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-chyron-relaxed</code>: [‘<code class="language-plaintext highlighter-rouge">Y</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">U</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">K</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">I</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’, ‘<code class="language-plaintext highlighter-rouge">N</code>:<code class="language-plaintext highlighter-rouge">Chyron</code>’]<br />- <code class="language-plaintext highlighter-rouge">binary-credits</code>: [‘<code class="language-plaintext highlighter-rouge">C</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’, ‘<code class="language-plaintext highlighter-rouge">R</code>:<code class="language-plaintext highlighter-rouge">Credits</code>’]<br /><br /> Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “I”, “C”, “R”, “M”, “O”, “W”, “N”, “Y”, “U”, “K”, “L”, “G”, “F”, “E”, “T”, “P”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v7.0)</title><link href="https://apps.clams.ai/swt-detection/v7.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v7.0)" /><published>2024-11-04T22:00:05+00:00</published><updated>2024-11-04T22:00:05+00:00</updated><id>https://apps.clams.ai/swt-detection/v7.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v7.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-11-04T22:00:05+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v7.0">ghcr.io/clamsproject/app-swt-detection:v7.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version re-implements stitcher based on <code class="language-plaintext highlighter-rouge">simple-timepoints-stitcher</code></p>
      <ul>
        <li>app now can run stitch-only mode (<code class="language-plaintext highlighter-rouge">useClassifier</code> and <code class="language-plaintext highlighter-rouge">useStitcher</code>)
          <ul>
            <li>simple-timepoints-stitcher app will retire</li>
          </ul>
        </li>
        <li>prefixed all parameters with their corresponding modes (e.g., <code class="language-plaintext highlighter-rouge">sampleRat  
e</code> &gt; <code class="language-plaintext highlighter-rouge">tpSampleRate</code>, <code class="language-plaintext highlighter-rouge">minTPScore</code> &gt; <code class="language-plaintext highlighter-rouge">tfMinTPScore</code></li>
        <li>changes to parameters
          <ul>
            <li><code class="language-plaintext highlighter-rouge">minTFCount</code> (frame count-based) became <code class="language-plaintext highlighter-rouge">tfMinTFDuration</code> (time-based)</li>
            <li><code class="language-plaintext highlighter-rouge">map</code> became <code class="language-plaintext highlighter-rouge">tfLabelMap</code> to clarify what “map” the param sets</li>
            <li><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code> is added to configure dynamic scene types that need multiple representative images/timepoints (defaults to [<code class="language-plaintext highlighter-rouge">credit</code>, ` credits`])</li>
            <li>default values for stitcher parameters are changed based on recent experiments. Most significantly now <code class="language-plaintext highlighter-rouge">minTPScore</code> defaults to 0.5 and <code class="language-plaintext highlighter-rouge">minTFScore</code> defaults to 0.9. See https://github.com/clamsproject/aapb-evaluations/issues/60 to read the full experimental reports.</li>
          </ul>
        </li>
        <li>changes to app behavior
          <ul>
            <li>new stitcher implementation is not exactly the same as the old, and users should expect more “break-ups” in the middle of long time frames</li>
            <li>for dynamic scene types, the gap between representative time points is now twice the <code class="language-plaintext highlighter-rouge">tfMinTFDuration</code> value</li>
            <li>image classification is now done in batches (currently fixed to size 2000) to reduce memory usage. This will add some time overhead to image extraction process</li>
          </ul>
        </li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v7.0">http://apps.clams.ai/swt-detection/v7.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v7.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useClassifier</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the image classifier model to generate TimePoint annotations.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpModelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_lg</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_lg</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Model name to use for classification, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpUsePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStartAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpStopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tpSampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames, only applies when <code class="language-plaintext highlighter-rouge">useClassifier=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimePoint to be included in a TimeFrame. A lower value will include more TimePoints in the TimeFrame (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame. A lower value will include more TimeFrames in the output (increasing recall in exchange for precision). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfMinTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum duration of a TimeFrame in milliseconds, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code>.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfAllowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames, only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfDynamicSceneLabels</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['credit', 'credits']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Labels that are considered dynamic scenes. For dynamic scenes, TimeFrame annotations contains multiple representative points to follow any changes in the scene. Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text']</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Mapping of a label in the input annotations to a new label. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. When no remap is used, all the input labels are passed as is, including any negative labels (<code class="language-plaintext highlighter-rouge">-</code>). However, when at least one label is remapped, all the other “unset” labels are remapped to the negative label (<code class="language-plaintext highlighter-rouge">-</code>). Only applies when <code class="language-plaintext highlighter-rouge">useStitcher=true</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v12)</title><link href="https://apps.clams.ai/whisper-wrapper/v12/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v12)" /><published>2024-10-16T16:03:25+00:00</published><updated>2024-10-16T16:03:25+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v12/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v12/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-10-16T16:03:25+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v12">ghcr.io/clamsproject/app-whisper-wrapper:v12</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>added support for arm64 container image</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v12">http://apps.clams.ai/whisper-wrapper/v12</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v12">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20240930</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code>, <code class="language-plaintext highlighter-rouge">turbo</code>, <code class="language-plaintext highlighter-rouge">tu</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3, turbo=tu)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20240930/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v11)</title><link href="https://apps.clams.ai/whisper-wrapper/v11/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v11)" /><published>2024-10-01T19:15:40+00:00</published><updated>2024-10-01T19:15:40+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v11/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v11/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-10-01T19:15:40+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v11">ghcr.io/clamsproject/app-whisper-wrapper:v11</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <ul>
        <li>Now based on whisper 240930 version with support of <code class="language-plaintext highlighter-rouge">turbo</code> model</li>
        <li>Beam search size is set to 5 for the decoder, following the <code class="language-plaintext highlighter-rouge">whisper</code> command’s default</li>
        <li>(temporarily) Disabled multiprocessing web app via gunicorn and fell back to flask built-in to work around CUDA memory issue</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v11">http://apps.clams.ai/whisper-wrapper/v11</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v11">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20240930</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code>, <code class="language-plaintext highlighter-rouge">turbo</code>, <code class="language-plaintext highlighter-rouge">tu</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3, turbo=tu)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20240930/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v10)</title><link href="https://apps.clams.ai/whisper-wrapper/v10/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v10)" /><published>2024-08-29T22:13:54+00:00</published><updated>2024-08-29T22:13:54+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v10/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v10/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-08-29T22:13:54+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v10">ghcr.io/clamsproject/app-whisper-wrapper:v10</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version adds some delegation parameters to whisper.transcribe</p>
      <ul>
        <li><code class="language-plaintext highlighter-rouge">task</code>: delegate to <code class="language-plaintext highlighter-rouge">--task</code></li>
        <li><code class="language-plaintext highlighter-rouge">initialPrompt</code>: delegate to <code class="language-plaintext highlighter-rouge">--initial-prompt</code></li>
        <li><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: delegate to <code class="language-plaintext highlighter-rouge">--condition-on-previous-text</code></li>
        <li><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: delegate to <code class="language-plaintext highlighter-rouge">--no-speech-threshold</code></li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v10">http://apps.clams.ai/whisper-wrapper/v10</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v10">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">task</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">transcribe</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">transcribe</code></em></strong>, <code class="language-plaintext highlighter-rouge">translate</code></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) whether to perform X-&gt;X speech recognition (‘transcribe’) or X-&gt;English translation (‘translate’)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">initialPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) optional text to provide as a prompt for the first window.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">conditionOnPreviousText</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>(from whisper CLI) 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</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">noSpeechThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.6</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <table>
        <tbody>
          <tr>
            <td>(from whisper CLI) if the probability of the &lt;</td>
            <td>nospeech</td>
            <td>&gt; token is higher than this value AND the decoding has failed due to <code class="language-plaintext highlighter-rouge">logprob_threshold</code>, consider the segment as silence</td>
          </tr>
        </tbody>
      </table>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v9)</title><link href="https://apps.clams.ai/whisper-wrapper/v9/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v9)" /><published>2024-08-16T15:05:09+00:00</published><updated>2024-08-16T15:05:09+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v9/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v9/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-08-16T15:05:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v9">ghcr.io/clamsproject/app-whisper-wrapper:v9</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>fixed inability to handle concurrent requests</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v9">http://apps.clams.ai/whisper-wrapper/v9</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v9">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Distil Whisper Wrapper (v1.2)</title><link href="https://apps.clams.ai/distil-whisper-wrapper/v1.2/index.html" rel="alternate" type="text/html" title="Distil Whisper Wrapper (v1.2)" /><published>2024-08-08T15:48:34+00:00</published><updated>2024-08-08T15:48:34+00:00</updated><id>https://apps.clams.ai/distil-whisper-wrapper/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/distil-whisper-wrapper/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/BenLambright">BenLambright</a></li>
  <li>Submission Time: 2024-08-08T15:48:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper/pkgs/container/app-distil-whisper-wrapper/v1.2">ghcr.io/clamsproject/app-distil-whisper-wrapper:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>reverting back to HF pipeline using chunking transcription</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>The wrapper of Distil-Whisper, avaliable models: distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. The default model is distil-small.en.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/distil-whisper-wrapper/v1.2">http://apps.clams.ai/distil-whisper-wrapper/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper">https://github.com/clamsproject/app-distil-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-distil-whisper-wrapper/tree/v1.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.0</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">distil-small.en</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">distil-large-v3</code>, <code class="language-plaintext highlighter-rouge">distil-large-v2</code>, <code class="language-plaintext highlighter-rouge">distil-medium.en</code>, <strong><em><code class="language-plaintext highlighter-rouge">distil-small.en</code></em></strong>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. There are four size of model to use distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. You can also enter the abbreviation of the model as parameter. ‘small’ and ‘s’ for distil-small.en; ‘medium’ and  ‘m’ for distil-medium.en; ‘large-v2’ and ‘l2’ for distil-large-v2; ‘large-v3’ and ‘l3’ for distil-large-v3. The default model is distil-medium.en.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input audio/video.</p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimeFrame</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">SENTENCE</code>, 2) <code class="language-plaintext highlighter-rouge">audio/video document</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code></p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>

    <blockquote>
      <p>The smallest recognized unit of distil-whisper. Normally a complete sentence.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v3.0)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v3.0/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v3.0)" /><published>2024-08-06T12:25:05+00:00</published><updated>2024-08-06T12:25:05+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v3.0/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v3.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-08-06T12:25:05+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v3.0">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v3.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Now can filter overlapping time frames</p>
      <ul>
        <li>via <code class="language-plaintext highlighter-rouge">allowOverlap</code> parameter (default is true to keep the backward compatibility)</li>
        <li>the filtering algorithm (based on https://github.com/clamsproject/app-swt-detection/blob/5092274d1ead64f21e0e3c2bbb7aa3ad4db75cd4/modeling/stitch.py#L88-L104)
          <ul>
            <li>sort collected positive TP sequences based on their mean scores, regardless of the labels</li>
            <li>loop through the sorted seqs, if a seq in the loop does not include any “seen” TP, mark the seq as “final” and mark all the underlying TPs as “seen”, otherwise skip that one.</li>
            <li>return the “final” frames, re-sorted by the start TPs</li>
          </ul>
        </li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v3.0">http://apps.clams.ai/simple-timepoints-stitcher/v3.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v3.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as the negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">null</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">null</code></em></strong>, <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>, <code class="language-plaintext highlighter-rouge">swt-v4-6way</code></li>
    </ul>

    <blockquote>
      <p>preset of label mappings. If not <code class="language-plaintext highlighter-rouge">null</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">null</code>: <code class="language-plaintext highlighter-rouge">None</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits']</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-6way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening']</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v6.1)</title><link href="https://apps.clams.ai/swt-detection/v6.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v6.1)" /><published>2024-07-30T01:06:00+00:00</published><updated>2024-07-30T01:06:00+00:00</updated><id>https://apps.clams.ai/swt-detection/v6.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v6.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-07-30T01:06:00+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v6.1">ghcr.io/clamsproject/app-swt-detection:v6.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>SDK update to fix warning view bugs</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v6.1">http://apps.clams.ai/swt-detection/v6.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v6.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_lg</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_lg</code></em></strong></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">usePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">map</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text']</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Mapping of a label in the input annotations to a new label. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any negative labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as a negative label.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v6.0)</title><link href="https://apps.clams.ai/swt-detection/v6.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v6.0)" /><published>2024-07-25T16:11:42+00:00</published><updated>2024-07-25T16:11:42+00:00</updated><id>https://apps.clams.ai/swt-detection/v6.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v6.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-07-25T16:11:42+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v6.0">ghcr.io/clamsproject/app-swt-detection:v6.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <ul>
        <li>updated to the latest SDK (adding some runtime recording params)</li>
        <li>added <code class="language-plaintext highlighter-rouge">usePosModel</code> param to toggle positional encoding</li>
        <li>general re-implementation and bugfix for positional encoding</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v6.0">http://apps.clams.ai/swt-detection/v6.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v6.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">convnext_lg</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">convnext_lg</code></em></strong></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">usePosModel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the model trained with positional features</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">map</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text']</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Mapping of a label in the input annotations to a new label. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any negative labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as a negative label.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v8)</title><link href="https://apps.clams.ai/whisper-wrapper/v8/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v8)" /><published>2024-07-22T21:53:49+00:00</published><updated>2024-07-22T21:53:49+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v8/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v8/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-07-22T21:53:49+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v8">ghcr.io/clamsproject/app-whisper-wrapper:v8</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>SDK version update</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v8">http://apps.clams.ai/whisper-wrapper/v8</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v8">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.) (also can be given as alias: tiny=t, base=b, small=s, medium=m, large=l, large-v2=l2, large-v3=l3)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Distil Whisper Wrapper (v1.1)</title><link href="https://apps.clams.ai/distil-whisper-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="Distil Whisper Wrapper (v1.1)" /><published>2024-07-22T21:52:47+00:00</published><updated>2024-07-22T21:52:47+00:00</updated><id>https://apps.clams.ai/distil-whisper-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/distil-whisper-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-07-22T21:52:47+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper/pkgs/container/app-distil-whisper-wrapper/v1.1">ghcr.io/clamsproject/app-distil-whisper-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Now based on SDK 1.3.0 with more universal parameters</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>The wrapper of Distil-Whisper, avaliable models: distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. The default model is distil-small.en.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/distil-whisper-wrapper/v1.1">http://apps.clams.ai/distil-whisper-wrapper/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper">https://github.com/clamsproject/app-distil-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-distil-whisper-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.0</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">distil-small.en</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">distil-large-v3</code>, <code class="language-plaintext highlighter-rouge">distil-large-v2</code>, <code class="language-plaintext highlighter-rouge">distil-medium.en</code>, <strong><em><code class="language-plaintext highlighter-rouge">distil-small.en</code></em></strong>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. There are four size of model to use distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. You can also enter the abbreviation of the model as parameter. ‘small’ and ‘s’ for distil-small.en; ‘medium’ and  ‘m’ for distil-medium.en; ‘large-v2’ and ‘l2’ for distil-large-v2; ‘large-v3’ and ‘l3’ for distil-large-v3. The default model is distil-medium.en.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">runningTime</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The running time of the app will be recorded in the view metadata</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">hwFetch</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The hardware information (architecture, GPU and vRAM) will be recorded in the view metadata</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input audio/video.</p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimeFrame</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">SENTENCE</code>, 2) <code class="language-plaintext highlighter-rouge">audio/video document</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code></p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>

    <blockquote>
      <p>The smallest recognized unit of distil-whisper. Normally a complete sentence.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Tfidf Keywordextractor (v1.0)</title><link href="https://apps.clams.ai/tfidf-keywordextractor/v1.0/index.html" rel="alternate" type="text/html" title="Tfidf Keywordextractor (v1.0)" /><published>2024-07-19T14:07:21+00:00</published><updated>2024-07-19T14:07:21+00:00</updated><id>https://apps.clams.ai/tfidf-keywordextractor/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/tfidf-keywordextractor/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/selenasong">selenasong</a></li>
  <li>Submission Time: 2024-07-19T14:07:21+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tfidf-keywordextractor/pkgs/container/app-tfidf-keywordextractor/v1.0">ghcr.io/clamsproject/app-tfidf-keywordextractor:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>extract keywords of a text document according to TF-IDF values. IDF values and all features come from related pickle files in the current directory.App can either take a simple text document or take a MMIF file generated from the text slicer app.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tfidf-keywordextractor/v1.0">http://apps.clams.ai/tfidf-keywordextractor/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tfidf-keywordextractor">https://github.com/clamsproject/app-tfidf-keywordextractor</a> (<a href="https://github.com/clamsproject/app-tfidf-keywordextractor/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">topN</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>top n keywords to extract from the current textfile.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>text</em> = “keywords”</li>
      <li><em>scores</em> = “tfidf scores”</li>
    </ul>

    <blockquote>
      <p>Default property ‘text’ stores the extracted keywords (string). Added property ‘scores’ stores keywords’ TF-IDF values (float).</p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Distil Whisper Wrapper (v1.0)</title><link href="https://apps.clams.ai/distil-whisper-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Distil Whisper Wrapper (v1.0)" /><published>2024-07-18T19:15:59+00:00</published><updated>2024-07-18T19:15:59+00:00</updated><id>https://apps.clams.ai/distil-whisper-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/distil-whisper-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/1192119703jzx">1192119703jzx</a></li>
  <li>Submission Time: 2024-07-18T19:15:59+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper/pkgs/container/app-distil-whisper-wrapper/v1.0">ghcr.io/clamsproject/app-distil-whisper-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>The wrapper of Distil-Whisper, avaliable models: distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. The default model is distil-small.en.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/distil-whisper-wrapper/v1.0">http://apps.clams.ai/distil-whisper-wrapper/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-distil-whisper-wrapper">https://github.com/clamsproject/app-distil-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-distil-whisper-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.0</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">distil-small.en</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">distil-large-v3</code>, <code class="language-plaintext highlighter-rouge">distil-large-v2</code>, <code class="language-plaintext highlighter-rouge">distil-medium.en</code>, <strong><em><code class="language-plaintext highlighter-rouge">distil-small.en</code></em></strong>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. There are four size of model to use distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. You can also enter the abbreviation of the model as parameter. ‘small’ and ‘s’ for distil-small.en; ‘medium’ and  ‘m’ for distil-medium.en; ‘large-v2’ and ‘l2’ for distil-large-v2; ‘large-v3’ and ‘l3’ for distil-large-v3. The default model is distil-medium.en.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input audio/video.</p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimeFrame</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">SENTENCE</code>, 2) <code class="language-plaintext highlighter-rouge">audio/video document</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code></p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>

    <blockquote>
      <p>The smallest recognized unit of distil-whisper. Normally a complete sentence.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS wrapper for spaCy NLP (v2.0)</title><link href="https://apps.clams.ai/spacy-wrapper/v2.0/index.html" rel="alternate" type="text/html" title="CLAMS wrapper for spaCy NLP (v2.0)" /><published>2024-07-16T16:49:38+00:00</published><updated>2024-07-16T16:49:38+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-07-16T16:49:38+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spacy-wrapper/pkgs/container/app-spacy-wrapper/v2.0">ghcr.io/clamsproject/app-spacy-wrapper:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply spaCy NLP to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spacy-wrapper/v2.0">http://apps.clams.ai/spacy-wrapper/v2.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spacy-wrapper">https://github.com/clamsproject/app-spacy-wrapper</a> (<a href="https://github.com/clamsproject/app-spacy-wrapper/tree/v2.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 3.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretokenized</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean parameter to set the app to use existing tokenization, if available, for text documents for NLP processing. Useful to process ASR documents, for example.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#pos">http://vocab.lappsgrid.org/Token#pos</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#lemma">http://vocab.lappsgrid.org/Token#lemma</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NounChunk">http://vocab.lappsgrid.org/NounChunk</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Text Slicer (v1.0)</title><link href="https://apps.clams.ai/text-slicer/v1.0/index.html" rel="alternate" type="text/html" title="Text Slicer (v1.0)" /><published>2024-07-02T01:30:06+00:00</published><updated>2024-07-02T01:30:06+00:00</updated><id>https://apps.clams.ai/text-slicer/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/text-slicer/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/bohJiang12">bohJiang12</a></li>
  <li>Submission Time: 2024-07-02T01:30:06+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-text-slicer/pkgs/container/app-text-slicer/v1.0">ghcr.io/clamsproject/app-text-slicer:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>first version of text-slicer</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Slice text snippets from a provided text document given time frames</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/text-slicer/v1.0">http://apps.clams.ai/text-slicer/v1.0</a></li>
  <li>App License: Apache2</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-text-slicer">https://github.com/clamsproject/app-text-slicer</a> (<a href="https://github.com/clamsproject/app-text-slicer/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">containLabel</code>: required</p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>A list of labels that user expect TimeFrames contain.<br />Labels can be chosen from but not limited to:<br />[‘bars’, ‘tones’, ‘bars-and-tones’,’speech’,’noise’,<br /> ‘music’, ‘slate’, ‘chyron’, ‘lower-third’, ‘credits’]<br />Users are required to select at least one label. Otherwise, errors would be thrown instead</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v5.1)</title><link href="https://apps.clams.ai/swt-detection/v5.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v5.1)" /><published>2024-06-28T02:03:53+00:00</published><updated>2024-06-28T02:03:53+00:00</updated><id>https://apps.clams.ai/swt-detection/v5.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v5.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-06-28T02:03:53+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v5.1">ghcr.io/clamsproject/app-swt-detection:v5.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Fixed <a href="https://github.com/clamsproject/app-swt-detection/issues/102">subtype-label bug</a> and …</p>
      <ul>
        <li>updating to clams-python 1.2.5,</li>
        <li>replaced cli.py with the one in the SDK to ensure consistency with other CLAMS apps</li>
        <li>added “full train” mode for trainer script to use all available data for training, without any validation at the train time</li>
        <li>refactor to declutter inter-dependency between app.py, Classifier, and Stitcher classes</li>
        <li>removed CLI in classifier.py, since app.py and cli.py can complete replace its functionality</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v5.1">http://apps.clams.ai/swt-detection/v5.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v5.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240626-205715.convnext_lg</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">20240626-205803.convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">20240626-205715.convnext_lg</code></em></strong></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">map</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text']</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Mapping of a label in the input annotations to a new label. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any negative labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as a negative label.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v2.1)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v2.1/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v2.1)" /><published>2024-06-26T14:40:00+00:00</published><updated>2024-06-26T14:40:00+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-06-26T14:40:00+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v2.1">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Minor release with updated SDK version and updated label mapping for compatibility with RFB and newer SWT.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v2.1">http://apps.clams.ai/simple-timepoints-stitcher/v2.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v2.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as the negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">null</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">null</code></em></strong>, <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>, <code class="language-plaintext highlighter-rouge">swt-v4-6way</code></li>
    </ul>

    <blockquote>
      <p>preset of label mappings. If not <code class="language-plaintext highlighter-rouge">null</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">null</code>: <code class="language-plaintext highlighter-rouge">None</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits']</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-6way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credits', 'R:credits', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening']</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v7)</title><link href="https://apps.clams.ai/whisper-wrapper/v7/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v7)" /><published>2024-06-24T20:24:22+00:00</published><updated>2024-06-24T20:24:22+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v7/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v7/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-06-24T20:24:22+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v7">ghcr.io/clamsproject/app-whisper-wrapper:v7</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <ul>
        <li>Fixed minor typos in parameters</li>
        <li>Updated to clams-python 1.2.4, and added <code class="language-plaintext highlighter-rouge">cli.py</code> interface</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v7">http://apps.clams.ai/whisper-wrapper/v7</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v7">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLang=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">EAST Text Detection (v1.2)</title><link href="https://apps.clams.ai/east-textdetection/v1.2/index.html" rel="alternate" type="text/html" title="EAST Text Detection (v1.2)" /><published>2024-06-24T13:52:29+00:00</published><updated>2024-06-24T13:52:29+00:00</updated><id>https://apps.clams.ai/east-textdetection/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/east-textdetection/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/MrSqually">MrSqually</a></li>
  <li>Submission Time: 2024-06-24T13:52:29+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-east-textdetection/pkgs/container/app-east-textdetection/v1.2">ghcr.io/clamsproject/app-east-textdetection:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>SDK v1.2.4 update</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>OpenCV-based text localization app that used EAST text detection model. Please visit the source code repository for full documentation.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/east-textdetection/v1.2">http://apps.clams.ai/east-textdetection/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-east-textdetection">https://github.com/clamsproject/app-east-textdetection</a> (<a href="https://github.com/clamsproject/app-east-textdetection/tree/v1.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for time points in the output. Only works with VideoDocument input.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameType</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['']</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
      <li>Choices: ``, <code class="language-plaintext highlighter-rouge">slate</code>, <code class="language-plaintext highlighter-rouge">chyron</code>, <code class="language-plaintext highlighter-rouge">rolling-credit</code></li>
    </ul>

    <blockquote>
      <p>Segments of video to run on. Only works with VideoDocument input and TimeFrame input. Empty value means run on the every frame types.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames. Only works with VideoDocument input, and without TimeFrame input. (when <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotation is found, this parameter is ignored.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">216000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop running. Only works with VideoDocument input. The default is roughly 2 hours of video at 30fps.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">mergeBoxes</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>if True, creates a single merged bounding box from all detected boxes.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>bboxtype</em> = “text”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS wrapper for spaCy NLP (v1.2)</title><link href="https://apps.clams.ai/spacy-wrapper/v1.2/index.html" rel="alternate" type="text/html" title="CLAMS wrapper for spaCy NLP (v1.2)" /><published>2024-06-11T12:30:19+00:00</published><updated>2024-06-11T12:30:19+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-06-11T12:30:19+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spacy-wrapper/pkgs/container/app-spacy-wrapper/v1.2">ghcr.io/clamsproject/app-spacy-wrapper:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Bumping Python SDK version, bug fixes and documentation updates</p>
      <ul>
        <li>Updated to clams-python 1.2.2</li>
        <li>Fixed token length (issue #30)</li>
        <li>Fixed problems with the pretokenized parameter (issue #32)</li>
        <li>Various documentation fixes.</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply spaCy NLP to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spacy-wrapper/v1.2">http://apps.clams.ai/spacy-wrapper/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spacy-wrapper">https://github.com/clamsproject/app-spacy-wrapper</a> (<a href="https://github.com/clamsproject/app-spacy-wrapper/tree/v1.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 3.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretokenized</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean parameter to set the app to use existing tokenization, if available, for text documents for NLP processing. Useful to process ASR documents, for example.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#pos">http://vocab.lappsgrid.org/Token#pos</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#lemma">http://vocab.lappsgrid.org/Token#lemma</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NounChunk">http://vocab.lappsgrid.org/NounChunk</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Llava Captioner (v1.1)</title><link href="https://apps.clams.ai/llava-captioner/v1.1/index.html" rel="alternate" type="text/html" title="Llava Captioner (v1.1)" /><published>2024-05-23T19:38:32+00:00</published><updated>2024-05-23T19:38:32+00:00</updated><id>https://apps.clams.ai/llava-captioner/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/llava-captioner/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2024-05-23T19:38:32+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-llava-captioner/pkgs/container/app-llava-captioner/v1.1">ghcr.io/clamsproject/app-llava-captioner:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies llava to video frames.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/llava-captioner/v1.1">http://apps.clams.ai/llava-captioner/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-llava-captioner">https://github.com/clamsproject/app-llava-captioner</a> (<a href="https://github.com/clamsproject/app-llava-captioner/tree/v1.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">defaultPrompt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">What is shown in this video frame?</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>default prompt to use for timeframes not specified in the promptMap. If set to <code class="language-plaintext highlighter-rouge">-</code>, timeframes not specified in the promptMap will be skipped.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">promptMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels of the input timeframe annotations to new prompts. Must be formatted as “IN_LABEL:PROMPT” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, any timeframe labels not mapped to a prompt will be used with the defaultprompt. In order to skip timeframes with a particular label, pass <code class="language-plaintext highlighter-rouge">-</code> as the prompt value.in order to skip all timeframes not specified in the promptMap, set the defaultPromptparameter to <code class="language-plaintext highlighter-rouge">-</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Llava Captioner (v1.0)</title><link href="https://apps.clams.ai/llava-captioner/v1.0/index.html" rel="alternate" type="text/html" title="Llava Captioner (v1.0)" /><published>2024-05-23T19:26:17+00:00</published><updated>2024-05-23T19:26:17+00:00</updated><id>https://apps.clams.ai/llava-captioner/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/llava-captioner/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2024-05-23T19:26:17+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-llava-captioner/pkgs/container/app-llava-captioner/v1.0">ghcr.io/clamsproject/app-llava-captioner:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Applies llava to video frames.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/llava-captioner/v1.0">http://apps.clams.ai/llava-captioner/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-llava-captioner">https://github.com/clamsproject/app-llava-captioner</a> (<a href="https://github.com/clamsproject/app-llava-captioner/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v5.0)</title><link href="https://apps.clams.ai/swt-detection/v5.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v5.0)" /><published>2024-05-22T14:32:58+00:00</published><updated>2024-05-22T14:32:58+00:00</updated><id>https://apps.clams.ai/swt-detection/v5.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v5.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-05-22T14:32:58+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v5.0">ghcr.io/clamsproject/app-swt-detection:v5.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This release adds a script to run a server-less app from the command line, adds and fixes parameters, and updates dependencies.</p>
      <ul>
        <li>Added CLI capabilities</li>
        <li>Added allowOverlap parameter</li>
        <li>Added map parameter for postbin mapping</li>
        <li>Updated to clams-python 1.2.2</li>
        <li>Updated base container to clams-python-opencv4-torch2:1.2.2</li>
        <li>Simplified model names</li>
        <li>Documentation updates</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v5.0">http://apps.clams.ai/swt-detection/v5.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v5.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9223372036854775807</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240409-091401.convnext_lg</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">20240212-132306.convnext_lg</code>, <code class="language-plaintext highlighter-rouge">20240409-093229.convnext_tiny</code>, <strong><em><code class="language-plaintext highlighter-rouge">20240409-091401.convnext_lg</code></em></strong>, <code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg</code>, <code class="language-plaintext highlighter-rouge">20240212-131937.convnext_tiny</code></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">allowOverlap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Allow overlapping time frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">map</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'S-H:slate', 'S-C:slate', 'S-D:slate', 'S-G:slate', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credit', 'R:credit', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text']</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Mapping of a label in the input annotations to a new label. Must be formatted as IN_LABEL:OUT_LABEL (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any negative labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as a negative label.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “S:H”, “S:C”, “S:D”, “S:B”, “S:G”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">inaSpeechSegmenter Wrapper (v2.0)</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.0/index.html" rel="alternate" type="text/html" title="inaSpeechSegmenter Wrapper (v2.0)" /><published>2024-05-07T03:45:14+00:00</published><updated>2024-05-07T03:45:14+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-05-07T03:45:14+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/pkgs/container/app-inaspeechsegmenter-wrapper/v2.0">ghcr.io/clamsproject/app-inaspeechsegmenter-wrapper:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Major update</p>
      <ul>
        <li><code class="language-plaintext highlighter-rouge">TimeFrame</code> properties are updated to match new CLAMS vocab specification</li>
        <li><code class="language-plaintext highlighter-rouge">noEnergy</code> label from INA segmenter is stored as <code class="language-plaintext highlighter-rouge">silence</code> in MMIF for clarity</li>
        <li>added parameter <code class="language-plaintext highlighter-rouge">silenceRatio</code> to configure silence detection threshold</li>
        <li>renamed <code class="language-plaintext highlighter-rouge">minDuration</code> parameter to <code class="language-plaintext highlighter-rouge">minTFDuration</code> for clarity</li>
        <li>bugfixes in cli.py</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/inaspeechsegmenter-wrapper/v2.0">http://apps.clams.ai/inaspeechsegmenter-wrapper/v2.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper">https://github.com/clamsproject/app-inaspeechsegmenter-wrapper</a> (<a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/tree/v2.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.7.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">silenceRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">3</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>percentage ratio (0-100) of audio energy to to determine silence, ratio to mean every of the input audio.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“silence”, “speech”, “noise”, “music”]</li>
    </ul>

    <blockquote>
      <p>The INA semgmenter uses 5-way classification ([‘noEnergy’, ‘female’, ‘male’, ‘noise’, ‘music’]) and this wrapper remaps the labels to [‘silence’, ‘speech’, ‘noise’, ‘music’], by 1) renaming <code class="language-plaintext highlighter-rouge">noEnergy</code> to <code class="language-plaintext highlighter-rouge">silence</code> 2) collapsing <code class="language-plaintext highlighter-rouge">female</code> and <code class="language-plaintext highlighter-rouge">male</code> into <code class="language-plaintext highlighter-rouge">speech</code> (leaving additional <code class="language-plaintext highlighter-rouge">gender</code> property). Note that the time frame annotations do not exhaustively cover the input audio, but only the segments.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">inaSpeechSegmenter Wrapper (v1.2)</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.2/index.html" rel="alternate" type="text/html" title="inaSpeechSegmenter Wrapper (v1.2)" /><published>2024-05-06T17:53:34+00:00</published><updated>2024-05-06T17:53:34+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-05-06T17:53:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/pkgs/container/app-inaspeechsegmenter-wrapper/v1.2">ghcr.io/clamsproject/app-inaspeechsegmenter-wrapper:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>SDK update, added experimental cli.py</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.2">http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.2</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper">https://github.com/clamsproject/app-inaspeechsegmenter-wrapper</a> (<a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/tree/v1.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.7.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v2.0)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v2.0/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v2.0)" /><published>2024-05-06T16:13:55+00:00</published><updated>2024-05-06T16:13:55+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-05-06T16:13:55+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v2.0">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Major update to add</p>
      <ul>
        <li>experimental CLI. CLI shares the same parameters specified in the app metadata. Try <code class="language-plaintext highlighter-rouge">python cli.py --help</code>!</li>
        <li>added presets for complex labelMap parameter. Find out about labelMapPreset parameter in the metadata.</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v2.0">http://apps.clams.ai/simple-timepoints-stitcher/v2.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v2.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded as the negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMapPreset</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">null</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">null</code></em></strong>, <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>, <code class="language-plaintext highlighter-rouge">swt-v4-6way</code></li>
    </ul>

    <blockquote>
      <p>preset of label mappings. If not <code class="language-plaintext highlighter-rouge">null</code>, this parameter will override the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter. Available presets are:<br />- <code class="language-plaintext highlighter-rouge">null</code>: <code class="language-plaintext highlighter-rouge">None</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-4way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'S-H:slate', 'S-C:slate', 'S-D:slate', 'S-G:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credit', 'R:credit']</code><br />- <code class="language-plaintext highlighter-rouge">swt-v4-6way</code>: <code class="language-plaintext highlighter-rouge">['B:bars', 'S:slate', 'S-H:slate', 'S-C:slate', 'S-D:slate', 'S-G:slate', 'I:chyron', 'N:chyron', 'Y:chyron', 'C:credit', 'R:credit', 'E:other_text', 'K:other_text', 'G:other_text', 'T:other_text', 'F:other_text', 'W:other_opening', 'L:other_opening', 'O:other_opening', 'M:other_opening']</code></p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS docTR Wrapper (v1.1)</title><link href="https://apps.clams.ai/doctr-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="CLAMS docTR Wrapper (v1.1)" /><published>2024-04-23T20:49:23+00:00</published><updated>2024-04-23T20:49:23+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-23T20:49:23+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-doctr-wrapper/pkgs/container/app-doctr-wrapper/v1.1">ghcr.io/clamsproject/app-doctr-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Minor update with various fixes</p>
      <ul>
        <li>updated SDK version</li>
        <li>fixed container image dependency problem</li>
        <li>updated app metadata and made app description less verbose</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps the <a href="https://pypi.org/project/python-doctr">docTR, End-to-End OCR model</a>. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents. See descriptions for I/O types below  for details on how annotations are aligned to each other.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/doctr-wrapper/v1.1">http://apps.clams.ai/doctr-wrapper/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-doctr-wrapper">https://github.com/clamsproject/app-doctr-wrapper</a> (<a href="https://github.com/clamsproject/app-doctr-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.1</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
    </ul>

    <blockquote>
      <p>The Time frame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “words” in the input images. <code class="language-plaintext highlighter-rouge">text</code> and <code class="language-plaintext highlighter-rouge">word</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “lines” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “blocks” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS docTR Wrapper (v1.0)</title><link href="https://apps.clams.ai/doctr-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="CLAMS docTR Wrapper (v1.0)" /><published>2024-04-22T18:46:07+00:00</published><updated>2024-04-22T18:46:07+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-22T18:46:07+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-doctr-wrapper/pkgs/container/app-doctr-wrapper/v1.0">ghcr.io/clamsproject/app-doctr-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps the docTR, End-to-End OCR model, available at https://pypi.org/project/python-doctr . The model is capable of detecting text regions in the input image and recognizing text in the regions. The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents, then aligns them to <code class="language-plaintext highlighter-rouge">BoundingBox</code> annotations that represent the detected geometries. This hierarchical structure is also represented in the <code class="language-plaintext highlighter-rouge">TextDocument</code> annotation output as two newlines (<code class="language-plaintext highlighter-rouge">\n\n</code>) between “paragraphs”, one newline (<code class="language-plaintext highlighter-rouge">\n</code>) between the “lines”, and one space (“ “) between the “words”. For the text recognition, the model is internally configured to use the “parseq” recognition model, and only works with English text at the moment.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/doctr-wrapper/v1.0">http://apps.clams.ai/doctr-wrapper/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-doctr-wrapper">https://github.com/clamsproject/app-doctr-wrapper</a> (<a href="https://github.com/clamsproject/app-doctr-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.8.1</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a> (required)</p>
    <ul>
      <li><em>representatives</em> = “?”</li>
    </ul>

    <blockquote>
      <p>The Time frame annotation that represents the video segment to be processed. When <code class="language-plaintext highlighter-rouge">representatives</code> property is present, the app will process videos still frames at the underlying time point annotations that are referred to by the <code class="language-plaintext highlighter-rouge">representatives</code> property. Otherwise, the app will process the middle frame of the video segment.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tfLabel</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>The label of the TimeFrame annotation to be processed. By default (<code class="language-plaintext highlighter-rouge">[]</code>), all TimeFrame annotations will be processed, regardless of their <code class="language-plaintext highlighter-rouge">label</code> property values.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
    <ul>
      <li><em>@lang</em> = “en”</li>
    </ul>

    <blockquote>
      <p>Fully serialized text content of the recognized text in the input images. Serialization isdone by concatenating <code class="language-plaintext highlighter-rouge">text</code> values of <code class="language-plaintext highlighter-rouge">Paragraph</code> annotations with two newline characters.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
    <ul>
      <li><em>text</em> = “*”</li>
      <li><em>word</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “words” in the input images. <code class="language-plaintext highlighter-rouge">text</code> and <code class="language-plaintext highlighter-rouge">word</code> properties store the string values of the recognized text. The duplication is for keepingbackward compatibility and consistency with <code class="language-plaintext highlighter-rouge">Paragraph</code> and <code class="language-plaintext highlighter-rouge">Sentence</code> annotations.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “lines” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of space-joined words.</p>
    </blockquote>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Paragraph">http://vocab.lappsgrid.org/Paragraph</a>
    <ul>
      <li><em>text</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Translation of the recognized docTR “blocks” in the input images. <code class="language-plaintext highlighter-rouge">text</code> property stores the string value of newline-joined sentences.</p>
    </blockquote>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>

    <blockquote>
      <p>Alignments between 1) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">TextDocument</code>, 2) <code class="language-plaintext highlighter-rouge">TimePoint</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code>, 3) <code class="language-plaintext highlighter-rouge">BoundingBox</code> &lt;-&gt; <code class="language-plaintext highlighter-rouge">Token</code>/<code class="language-plaintext highlighter-rouge">Sentence</code>/<code class="language-plaintext highlighter-rouge">Paragraph</code></p>
    </blockquote>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v4">http://mmif.clams.ai/vocabulary/BoundingBox/v4</a>
    <ul>
      <li><em>label</em> = “text”</li>
    </ul>

    <blockquote>
      <p>Bounding boxes of the detected text regions in the input images. No corresponding box for the entire image (<code class="language-plaintext highlighter-rouge">TextDocument</code>) region</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v1.3)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v1.3/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v1.3)" /><published>2024-04-21T22:40:34+00:00</published><updated>2024-04-21T22:40:34+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v1.3/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v1.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-21T22:40:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v1.3">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v1.3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>fixed <code class="language-plaintext highlighter-rouge">label</code> property missing from <code class="language-plaintext highlighter-rouge">TimeFrame</code>, updated to the new SDK version</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v1.3">http://apps.clams.ai/simple-timepoints-stitcher/v1.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v1.3">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded asa negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v1.2)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v1.2/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v1.2)" /><published>2024-04-12T15:54:40+00:00</published><updated>2024-04-12T15:54:40+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-12T15:54:40+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v1.2">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v1.2">http://apps.clams.ai/simple-timepoints-stitcher/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v1.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded asa negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v4.4)</title><link href="https://apps.clams.ai/swt-detection/v4.4/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v4.4)" /><published>2024-04-12T15:25:19+00:00</published><updated>2024-04-12T15:25:19+00:00</updated><id>https://apps.clams.ai/swt-detection/v4.4/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v4.4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-12T15:25:19+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v4.4">ghcr.io/clamsproject/app-swt-detection:v4.4</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version is re-release of v4.3 from the right commit.</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v4.4">http://apps.clams.ai/swt-detection/v4.4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v4.4">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240409-091401.convnext_lg.kfold_013</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code>, <strong><em><code class="language-plaintext highlighter-rouge">20240409-091401.convnext_lg.kfold_013</code></em></strong>, <code class="language-plaintext highlighter-rouge">20240409-093229.convnext_tiny.kfold_012</code>, <code class="language-plaintext highlighter-rouge">20240212-131937.convnext_tiny.kfold_000</code>, <code class="language-plaintext highlighter-rouge">20240212-132306.convnext_lg.kfold_000</code></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “S:H”, “S:C”, “S:D”, “S:B”, “S:G”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v4.3)</title><link href="https://apps.clams.ai/swt-detection/v4.3/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v4.3)" /><published>2024-04-11T21:49:21+00:00</published><updated>2024-04-11T21:49:21+00:00</updated><id>https://apps.clams.ai/swt-detection/v4.3/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v4.3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-11T21:49:21+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v4.3">ghcr.io/clamsproject/app-swt-detection:v4.3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version brings many bug fixes and new models</p>
      <ul>
        <li>fixed missing <code class="language-plaintext highlighter-rouge">NEG</code>  label score in the <code class="language-plaintext highlighter-rouge">classification</code> property in <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations (#87), and app metadata is updated accordingly</li>
        <li>fixed sampling rate disparity (#90)</li>
        <li>fixed sinusoidal positional features were not actually used (#47), and newly trained models with the fix are included</li>
        <li>miscellaneous code clean-up</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v4.3">http://apps.clams.ai/swt-detection/v4.3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v4.3">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></em></strong>, <code class="language-plaintext highlighter-rouge">20240212-131937.convnext_tiny.kfold_000</code>, <code class="language-plaintext highlighter-rouge">20240212-132306.convnext_lg.kfold_000</code></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “S:H”, “S:C”, “S:D”, “S:B”, “S:G”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v1.1)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v1.1/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v1.1)" /><published>2024-04-02T20:20:44+00:00</published><updated>2024-04-02T20:20:44+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-02T20:20:44+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v1.1">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v1.1">http://apps.clams.ai/simple-timepoints-stitcher/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v1.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded asa negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Simple Timepoints Stitcher (v1.0)</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/v1.0/index.html" rel="alternate" type="text/html" title="Simple Timepoints Stitcher (v1.0)" /><published>2024-04-01T11:53:34+00:00</published><updated>2024-04-01T11:53:34+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-04-01T11:53:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/pkgs/container/app-simple-timepoints-stitcher/v1.0">ghcr.io/clamsproject/app-simple-timepoints-stitcher:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/simple-timepoints-stitcher/v1.0">http://apps.clams.ai/simple-timepoints-stitcher/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-simple-timepoints-stitcher">https://github.com/clamsproject/app-simple-timepoints-stitcher</a> (<a href="https://github.com/clamsproject/app-simple-timepoints-stitcher/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v4">http://mmif.clams.ai/vocabulary/TimePoint/v4</a> (required)
    <ul>
      <li><em>timePoint</em> = “*”</li>
      <li><em>classification</em> = “*”</li>
    </ul>

    <blockquote>
      <p>TimePoint annotations to be stitched. Must be “exhaustive” in that it should cover an entire single time period in the input document, with a uniform sample rate.</p>
    </blockquote>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">labelMap</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">[]</code></p>

    <ul>
      <li>Type: map</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>mapping of labels in the input annotations to new labels. Must be formatted as “IN_LABEL:OUT_LABEL” (with a colon). To pass multiple mappings, use this parameter multiple times. By default, all the input labels are passed as is, including any “negative” labels (with default value being no remapping at all). However, when at least one label is remapped, all the other “unset” labels are discarded asa negative label(“-“).</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFDuration</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum duration of a TimeFrame in milliseconds</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTPScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.1</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum score of a TimePoint to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTFScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum average score of TimePoints in a TimeFrame to be considered as positive</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v5">http://mmif.clams.ai/vocabulary/TimeFrame/v5</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>label</em> = “*”</li>
      <li><em>representatives</em> = “*”</li>
    </ul>

    <blockquote>
      <p>Stitched TimeFrame annotations. Each TimeFrame annotation represents a continuous segment of timepoints and its <code class="language-plaintext highlighter-rouge">label</code> property is determined by the <code class="language-plaintext highlighter-rouge">labelMap</code> parameter (see <code class="language-plaintext highlighter-rouge">parameters</code> section). The <code class="language-plaintext highlighter-rouge">representatives</code> is a singleton list of the TimePoint annotation that has the highest score in the TimeFrame.</p>
    </blockquote>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Pyscenedetect Wrapper (v3)</title><link href="https://apps.clams.ai/pyscenedetect-wrapper/v3/index.html" rel="alternate" type="text/html" title="Pyscenedetect Wrapper (v3)" /><published>2024-03-11T17:42:55+00:00</published><updated>2024-03-11T17:42:55+00:00</updated><id>https://apps.clams.ai/pyscenedetect-wrapper/v3/index</id><content type="html" xml:base="https://apps.clams.ai/pyscenedetect-wrapper/v3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2024-03-11T17:42:55+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/pkgs/container/app-pyscenedetect-wrapper/v3">ghcr.io/clamsproject/app-pyscenedetect-wrapper:v3</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>sdk version updates</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>CLAMS app wraps PySceneDetect and performs shot boundary detection on input videos</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/pyscenedetect-wrapper/v3">http://apps.clams.ai/pyscenedetect-wrapper/v3</a></li>
  <li>App License: Apache2</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper">https://github.com/clamsproject/app-pyscenedetect-wrapper</a> (<a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/tree/v3">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.6.1</li>
  <li>Analyzer License: BSD-3</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">mode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">content</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">content</code></em></strong>, <code class="language-plaintext highlighter-rouge">threshold</code>, <code class="language-plaintext highlighter-rouge">adaptive</code></li>
    </ul>

    <blockquote>
      <p>pick a scene detector algorithm, see http://scenedetect.com/projects/Manual/en/latest/cli/detectors.html</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">27.0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value to use in the detection algorithm. Note that the meaning of this numerical value differs for different detector algorithms.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v3">http://mmif.clams.ai/vocabulary/TimeFrame/v3</a>
    <ul>
      <li><em>label</em> = “shot”</li>
      <li><em>timeUnit</em> = “frame”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v4.2)</title><link href="https://apps.clams.ai/swt-detection/v4.2/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v4.2)" /><published>2024-03-11T16:26:00+00:00</published><updated>2024-03-11T16:26:00+00:00</updated><id>https://apps.clams.ai/swt-detection/v4.2/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v4.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-03-11T16:26:00+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v4.2">ghcr.io/clamsproject/app-swt-detection:v4.2</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Includes bugfix and performance optimization</p>
      <ul>
        <li>fixed bug startAt/stopAt params were not honored</li>
        <li>faster video iteration for still image extraction</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v4.2">http://apps.clams.ai/swt-detection/v4.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v4.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></em></strong>, <code class="language-plaintext highlighter-rouge">20240212-132306.convnext_lg.kfold_000</code>, <code class="language-plaintext highlighter-rouge">20240212-131937.convnext_tiny.kfold_000</code></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v3">http://mmif.clams.ai/vocabulary/TimeFrame/v3</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v2">http://mmif.clams.ai/vocabulary/TimePoint/v2</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “S:H”, “S:C”, “S:D”, “S:B”, “S:G”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v4.1)</title><link href="https://apps.clams.ai/swt-detection/v4.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v4.1)" /><published>2024-03-07T03:29:41+00:00</published><updated>2024-03-07T03:29:41+00:00</updated><id>https://apps.clams.ai/swt-detection/v4.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v4.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-03-07T03:29:41+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v4.1">ghcr.io/clamsproject/app-swt-detection:v4.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version includes many bugfixes and clarification for the previous version.</p>
      <ul>
        <li>more informative, consistent, and flask-friendly debug-level logging for future development</li>
        <li>two additional pretrained models, including one based on convnext_tiny backbone for quicker annotation</li>
        <li><code class="language-plaintext highlighter-rouge">TimePoint</code> annotations is re-worked
          <ul>
            <li>classification-related props in TP anns are now all based on the “RAW” labels from classifier</li>
            <li>all images classification results are now recorded as TP annotations regardless of TF annotations</li>
          </ul>
        </li>
        <li>added two runtime parameter
          <ul>
            <li><code class="language-plaintext highlighter-rouge">useStitcher</code> - when <code class="language-plaintext highlighter-rouge">"false"</code>, app will only generate <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations, not stitching them into <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations</li>
            <li><code class="language-plaintext highlighter-rouge">modelName</code> - to pick a model between pre-built classifiers (by default, app will use the best performing model from training experiments)</li>
          </ul>
        </li>
        <li>updated to the latest <code class="language-plaintext highlighter-rouge">mmif-python</code> and <code class="language-plaintext highlighter-rouge">clams-python</code>, and thus no longer generates MMIFs with a non-existing version</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v4.1">http://apps.clams.ai/swt-detection/v4.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v4.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelName</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">20240126-180026.convnext_lg.kfold_000</code></em></strong>, <code class="language-plaintext highlighter-rouge">20240212-132306.convnext_lg.kfold_000</code>, <code class="language-plaintext highlighter-rouge">20240212-131937.convnext_tiny.kfold_000</code></li>
    </ul>

    <blockquote>
      <p>model name to use for classification</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">useStitcher</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>Use the stitcher after classifying the TimePoints</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v3">http://mmif.clams.ai/vocabulary/TimeFrame/v3</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v2">http://mmif.clams.ai/vocabulary/TimePoint/v2</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“B”, “S”, “S:H”, “S:C”, “S:D”, “S:B”, “S:G”, “W”, “L”, “O”, “M”, “I”, “N”, “E”, “P”, “Y”, “K”, “G”, “T”, “F”, “C”, “R”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v4.0)</title><link href="https://apps.clams.ai/swt-detection/v4.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v4.0)" /><published>2024-02-29T17:24:13+00:00</published><updated>2024-02-29T17:24:13+00:00</updated><id>https://apps.clams.ai/swt-detection/v4.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v4.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-02-29T17:24:13+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v4.0">ghcr.io/clamsproject/app-swt-detection:v4.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Uses a new classification regime with a dictionary of labels and scores</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v4.0">http://apps.clams.ai/swt-detection/v4.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v4.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v2">http://mmif.clams.ai/vocabulary/TimeFrame/v2</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“bars”, “slate”, “chyron”, “credits”, “NEG”]</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v1">http://mmif.clams.ai/vocabulary/TimePoint/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>labelset</em> = a list of [“bars”, “slate”, “chyron”, “credits”, “NEG”]</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v6)</title><link href="https://apps.clams.ai/whisper-wrapper/v6/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v6)" /><published>2024-02-12T19:47:39+00:00</published><updated>2024-02-12T19:47:39+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v6/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v6/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-02-12T19:47:39+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v6">ghcr.io/clamsproject/app-whisper-wrapper:v6</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>v6 fixes a bug running en-only large models since there is no en-only large model</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v6">http://apps.clams.ai/whisper-wrapper/v6</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v6">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">True</code>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">b</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">s</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">m</code>, <code class="language-plaintext highlighter-rouge">large</code>, <code class="language-plaintext highlighter-rouge">l</code>, <code class="language-plaintext highlighter-rouge">large-v2</code>, <code class="language-plaintext highlighter-rouge">l2</code>, <code class="language-plaintext highlighter-rouge">large-v3</code>, <code class="language-plaintext highlighter-rouge">l3</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. When <code class="language-plaintext highlighter-rouge">modelLand=en</code> is given, for non-<code class="language-plaintext highlighter-rouge">large</code> models, English-only models will be used instead of multilingual models for speed and accuracy. (For <code class="language-plaintext highlighter-rouge">large</code> models, English-only models are not available.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v2">http://mmif.clams.ai/vocabulary/TimeFrame/v2</a>
    <ul>
      <li><em>timeUnit</em> = “millisecond”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v5)</title><link href="https://apps.clams.ai/whisper-wrapper/v5/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v5)" /><published>2024-02-09T12:28:02+00:00</published><updated>2024-02-09T12:28:02+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v5/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v5/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-02-09T12:28:02+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v5">ghcr.io/clamsproject/app-whisper-wrapper:v5</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>This version include addition of <code class="language-plaintext highlighter-rouge">modelLang</code> param and many other changes</p>
      <ul>
        <li><strong>(BIG CHANGE)</strong> timeunit is now millisecond (integer)</li>
        <li><code class="language-plaintext highlighter-rouge">modelLang</code> parameter is added for selecting language to instruct Whisper to use, Whisper will run in language detection mode if this parameter is not given.</li>
        <li>When <code class="language-plaintext highlighter-rouge">modelLang</code> is set to <code class="language-plaintext highlighter-rouge">en</code>, load english only models instead of multilingual ones for speed and performance</li>
        <li>skips empty segments from whisper when generating output MMIF</li>
        <li>updated to clams-python 1.1.1</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v5">http://apps.clams.ai/whisper-wrapper/v5</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v5">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. Can be “tiny”, “base”, “small”, “medium”, or “large”.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelLang</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Language of the model to use, accepts two- or three-letter ISO 639 language codes, however Whisper only supports a subset of languages. If the language is not supported, error will be raised.For the full list of supported languages, see https://github.com/openai/whisper/blob/20231117/whisper/tokenizer.py . In addition to the langauge code, two-letter region codes can be added to the language code, e.g. “en-US” for US English. Note that the region code is only for compatibility and recording purpose, and Whisper neither detects regional dialects, nor use the given one for transcription. When the langauge code is not given, Whisper will run in langauge detection mode, and will use first few seconds of the audio to detect the language.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “millisecond”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v3.0)</title><link href="https://apps.clams.ai/swt-detection/v3.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v3.0)" /><published>2024-02-07T21:18:36+00:00</published><updated>2024-02-07T21:18:36+00:00</updated><id>https://apps.clams.ai/swt-detection/v3.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v3.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-02-07T21:18:36+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v3.0">ghcr.io/clamsproject/app-swt-detection:v3.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>New model, improved MMIF output and various fixes</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v3.0">http://apps.clams.ai/swt-detection/v3.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v3.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">startAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to start processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10000000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of milliseconds into the video to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.25</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>frameType</em> = “bars”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>frameType</em> = “slate”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>frameType</em> = “chyron”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
      <li><em>frameType</em> = “credits”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimePoint/v1">http://mmif.clams.ai/vocabulary/TimePoint/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Easyocr Wrapper (v1.1)</title><link href="https://apps.clams.ai/easyocr-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="Easyocr Wrapper (v1.1)" /><published>2024-01-30T19:59:06+00:00</published><updated>2024-01-30T19:59:06+00:00</updated><id>https://apps.clams.ai/easyocr-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/easyocr-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/snewman-aa">snewman-aa</a></li>
  <li>Submission Time: 2024-01-30T19:59:06+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-easyocr-wrapper/pkgs/container/app-easyocr-wrapper/v1.1">ghcr.io/clamsproject/app-easyocr-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Using EasyOCR to extract text from timeframes</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/easyocr-wrapper/v1.1">http://apps.clams.ai/easyocr-wrapper/v1.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-easyocr-wrapper">https://github.com/clamsproject/app-easyocr-wrapper</a> (<a href="https://github.com/clamsproject/app-easyocr-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.7.0</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimePoint/v1">http://mmif.clams.ai/vocabulary/TimePoint/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v2.1)</title><link href="https://apps.clams.ai/swt-detection/v2.1/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v2.1)" /><published>2024-01-25T20:44:45+00:00</published><updated>2024-01-25T20:44:45+00:00</updated><id>https://apps.clams.ai/swt-detection/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-01-25T20:44:45+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v2.1">ghcr.io/clamsproject/app-swt-detection:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Fixed fatal error in 2.0 and added timeUnit</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v2.1">http://apps.clams.ai/swt-detection/v2.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v2.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.25</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Easyocr Wrapper (v1.0)</title><link href="https://apps.clams.ai/easyocr-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Easyocr Wrapper (v1.0)" /><published>2024-01-25T18:44:59+00:00</published><updated>2024-01-25T18:44:59+00:00</updated><id>https://apps.clams.ai/easyocr-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/easyocr-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/snewman-aa">snewman-aa</a></li>
  <li>Submission Time: 2024-01-25T18:44:59+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-easyocr-wrapper/pkgs/container/app-easyocr-wrapper/v1.0">ghcr.io/clamsproject/app-easyocr-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Using EasyOCR to extract text from timeframes</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/easyocr-wrapper/v1.0">http://apps.clams.ai/easyocr-wrapper/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-easyocr-wrapper">https://github.com/clamsproject/app-easyocr-wrapper</a> (<a href="https://github.com/clamsproject/app-easyocr-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.7.0</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleFrames</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Number of frames to sample from timeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TimePoint/v1">http://mmif.clams.ai/vocabulary/TimePoint/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v4)</title><link href="https://apps.clams.ai/whisper-wrapper/v4/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v4)" /><published>2024-01-24T05:40:09+00:00</published><updated>2024-01-24T05:40:09+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v4/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v4/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2024-01-24T05:40:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v4">ghcr.io/clamsproject/app-whisper-wrapper:v4</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <ul>
        <li>updated to the latest whisper models</li>
        <li>now ouputs <code class="language-plaintext highlighter-rouge">Sentence</code> annotations based on whisper’s segmentation</li>
      </ul>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v4">http://apps.clams.ai/whisper-wrapper/v4</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v4">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20231117</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. Can be “tiny”, “base”, “small”, “medium”, or “large”.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scenes-with-text Detection (v2.0)</title><link href="https://apps.clams.ai/swt-detection/v2.0/index.html" rel="alternate" type="text/html" title="Scenes-with-text Detection (v2.0)" /><published>2024-01-16T17:15:09+00:00</published><updated>2024-01-16T17:15:09+00:00</updated><id>https://apps.clams.ai/swt-detection/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2024-01-16T17:15:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v2.0">ghcr.io/clamsproject/app-swt-detection:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Version 2.1</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v2.0">http://apps.clams.ai/swt-detection/v2.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v2.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRate</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Milliseconds between sampled frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.01</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a still frame to be included in a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minTimeframeScore</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.25</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum score for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of sampled frames required for a TimeFrame</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Scene-with-text Detection (v1.0)</title><link href="https://apps.clams.ai/swt-detection/v1.0/index.html" rel="alternate" type="text/html" title="Scene-with-text Detection (v1.0)" /><published>2023-11-22T15:13:53+00:00</published><updated>2023-11-22T15:13:53+00:00</updated><id>https://apps.clams.ai/swt-detection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/marcverhagen">marcverhagen</a></li>
  <li>Submission Time: 2023-11-22T15:13:53+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-swt-detection/pkgs/container/app-swt-detection/v1.0">ghcr.io/clamsproject/app-swt-detection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <blockquote>
      <p>Version 1.0 of the app</p>
    </blockquote>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects scenes with text, like slates, chyrons and credits.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/swt-detection/v1.0">http://apps.clams.ai/swt-detection/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-swt-detection">https://github.com/clamsproject/app-swt-detection</a> (<a href="https://github.com/clamsproject/app-swt-detection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">model</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">vgg16</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>the model to use, not implemented yet</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Dbpedia Spotlight Wrapper (v1.2)</title><link href="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.2/index.html" rel="alternate" type="text/html" title="Dbpedia Spotlight Wrapper (v1.2)" /><published>2023-08-24T15:51:13+00:00</published><updated>2023-08-24T15:51:13+00:00</updated><id>https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/wricketts">wricketts</a></li>
  <li>Submission Time: 2023-08-24T15:51:13+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/pkgs/container/app-dbpedia-spotlight-wrapper/v1.2">ghcr.io/clamsproject/app-dbpedia-spotlight-wrapper:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply named entity linking to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.2">http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper">https://github.com/clamsproject/app-dbpedia-spotlight-wrapper</a> (<a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/tree/v1.2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: daf5309</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">confidence</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>disambiguation confidence score for linking</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">support</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>resource prominence, i.e. number of in-links in Wikipedia (lower bound)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">types</code>: required</p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>limits recognition to certain types of named entities, e.g. DBpedia:Place</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">policy</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">whitelist</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">whitelist</code></em></strong>, <code class="language-plaintext highlighter-rouge">blacklist</code></li>
    </ul>

    <blockquote>
      <p>(whitelist) selects all entities of the same type; (blacklist) selects all entities not of the same type</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Slate Detection (v2.1)</title><link href="https://apps.clams.ai/slatedetection/v2.1/index.html" rel="alternate" type="text/html" title="Slate Detection (v2.1)" /><published>2023-08-03T17:56:59+00:00</published><updated>2023-08-03T17:56:59+00:00</updated><id>https://apps.clams.ai/slatedetection/v2.1/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/v2.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-08-03T17:56:59+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-slatedetection/pkgs/container/app-slatedetection/v2.1">ghcr.io/clamsproject/app-slatedetection:v2.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects slates.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/slatedetection/v2.1">http://apps.clams.ai/slatedetection/v2.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-slatedetection">https://github.com/clamsproject/app-slatedetection</a> (<a href="https://github.com/clamsproject/app-slatedetection/tree/v2.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit of time to use in output.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.7</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “slate”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Few Shot Classifier (v1.0)</title><link href="https://apps.clams.ai/fewshotclassifier/v1.0/index.html" rel="alternate" type="text/html" title="Few Shot Classifier (v1.0)" /><published>2023-08-01T22:57:12+00:00</published><updated>2023-08-01T22:57:12+00:00</updated><id>https://apps.clams.ai/fewshotclassifier/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/fewshotclassifier/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-08-01T22:57:12+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-fewshotclassifier/pkgs/container/app-fewshotclassifier/v1.0">ghcr.io/clamsproject/app-fewshotclassifier:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool uses a vision model to classify video segments. Currenly supports “chyron” frame type.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/fewshotclassifier/v1.0">http://apps.clams.ai/fewshotclassifier/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-fewshotclassifier">https://github.com/clamsproject/app-fewshotclassifier</a> (<a href="https://github.com/clamsproject/app-fewshotclassifier/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.0</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output timeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">60</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output with a minimum value of 1</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.8</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential labels.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">finetunedFrameType</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">chyron</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Name of fine-tuned model to use. All pre-installed models are named after the frame type they were fine-tuned for.<br /><br />If an empty value is passed, the app will look for fewshots.csv file in the same directory as the app.py and create a new fine-tuned model based on the examples in that file.<br /><br />At the moment, a model fine-tuned on “chyron” frame type is shipped as pre-installed.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “string”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Bars Detection (v1.1)</title><link href="https://apps.clams.ai/barsdetection/v1.1/index.html" rel="alternate" type="text/html" title="Bars Detection (v1.1)" /><published>2023-07-31T23:31:12+00:00</published><updated>2023-07-31T23:31:12+00:00</updated><id>https://apps.clams.ai/barsdetection/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/barsdetection/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-31T23:31:12+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-barsdetection/pkgs/container/app-barsdetection/v1.1">ghcr.io/clamsproject/app-barsdetection:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects SMPTE color bars.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/barsdetection/v1.1">http://apps.clams.ai/barsdetection/v1.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-barsdetection">https://github.com/clamsproject/app-barsdetection</a> (<a href="https://github.com/clamsproject/app-barsdetection/tree/v1.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output typeframe.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum number of frames required for a timeframe to be included in the output.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.7</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>typeSpecificProperty</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “bars”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">EAST Text Detection (v1.1)</title><link href="https://apps.clams.ai/east-textdetection/v1.1/index.html" rel="alternate" type="text/html" title="EAST Text Detection (v1.1)" /><published>2023-07-26T19:06:10+00:00</published><updated>2023-07-26T19:06:10+00:00</updated><id>https://apps.clams.ai/east-textdetection/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/east-textdetection/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-26T19:06:10+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-east-textdetection/pkgs/container/app-east-textdetection/v1.1">ghcr.io/clamsproject/app-east-textdetection:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>OpenCV-based text localization app that used EAST text detection model. Please visit the source code repository for full documentation.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/east-textdetection/v1.1">http://apps.clams.ai/east-textdetection/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-east-textdetection">https://github.com/clamsproject/app-east-textdetection</a> (<a href="https://github.com/clamsproject/app-east-textdetection/tree/v1.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for time points in the output. Only works with VideoDocument input.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameType</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
      <li>Choices: ``, <code class="language-plaintext highlighter-rouge">slate</code>, <code class="language-plaintext highlighter-rouge">chyron</code>, <code class="language-plaintext highlighter-rouge">rolling-credit</code></li>
    </ul>

    <blockquote>
      <p>Segments of video to run on. Only works with VideoDocument input and TimeFrame input. Empty value means run on the every frame types.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames. Only works with VideoDocument input, and without TimeFrame input. (when <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotation is found, this parameter is ignored.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2 * 60 * 60 * 30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop running. Only works with VideoDocument input. The default is roughly 2 hours of video at 30fps.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a>
    <ul>
      <li><em>bboxtype</em> = “text”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Bars Detection (v1.0)</title><link href="https://apps.clams.ai/barsdetection/v1.0/index.html" rel="alternate" type="text/html" title="Bars Detection (v1.0)" /><published>2023-07-26T00:07:49+00:00</published><updated>2023-07-26T00:07:49+00:00</updated><id>https://apps.clams.ai/barsdetection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/barsdetection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-26T00:07:49+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-barsdetection/pkgs/container/app-barsdetection/v1.0">ghcr.io/clamsproject/app-barsdetection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects SMPTE color bars.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/barsdetection/v1.0">http://apps.clams.ai/barsdetection/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-barsdetection">https://github.com/clamsproject/app-barsdetection</a> (<a href="https://github.com/clamsproject/app-barsdetection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output typeframe.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum number of frames required for a timeframe to be included in the output.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.7</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>typeSpecificProperty</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “bars”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Parseq OCR Wrapper (v1.0)</title><link href="https://apps.clams.ai/parseqocr-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Parseq OCR Wrapper (v1.0)" /><published>2023-07-26T00:04:08+00:00</published><updated>2023-07-26T00:04:08+00:00</updated><id>https://apps.clams.ai/parseqocr-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/parseqocr-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-26T00:04:08+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-parseqocr-wrapper/pkgs/container/app-parseqocr-wrapper/v1.0">ghcr.io/clamsproject/app-parseqocr-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool applies Parseq OCR to a video or image and generates text boxes and OCR results.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/parseqocr-wrapper/v1.0">http://apps.clams.ai/parseqocr-wrapper/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-parseqocr-wrapper">https://github.com/clamsproject/app-parseqocr-wrapper</a> (<a href="https://github.com/clamsproject/app-parseqocr-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: bc8d95cd</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a> (required)</p>
    <ul>
      <li><em>boxType</em> = “text”</li>
    </ul>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Tesseract OCR Wrapper (v1.0)</title><link href="https://apps.clams.ai/tesseractocr-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Tesseract OCR Wrapper (v1.0)" /><published>2023-07-26T00:03:43+00:00</published><updated>2023-07-26T00:03:43+00:00</updated><id>https://apps.clams.ai/tesseractocr-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/tesseractocr-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-26T00:03:43+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper/pkgs/container/app-tesseractocr-wrapper/v1.0">ghcr.io/clamsproject/app-tesseractocr-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tesseractocr-wrapper/v1.0">http://apps.clams.ai/tesseractocr-wrapper/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tesseractocr-wrapper">https://github.com/clamsproject/app-tesseractocr-wrapper</a> (<a href="https://github.com/clamsproject/app-tesseractocr-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: tesseract4</li>
  <li>Analyzer License: apache</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a> (required)
    <ul>
      <li><em>boxType</em> = “text”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameType</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>Use this to specify TimeFrame to use for filtering “text”-typed BoundingBox annotations. Can be “slate”, “chyron”, “speech”, etc.. If not set, the app won’t use TimeFrames for filtering.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.9</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Use this value between 0 and 1 to filter out low-confidence text boxes.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">psm</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">0</code></em></strong>, <code class="language-plaintext highlighter-rouge">1</code>, <code class="language-plaintext highlighter-rouge">2</code>, <code class="language-plaintext highlighter-rouge">3</code>, <code class="language-plaintext highlighter-rouge">4</code>, <code class="language-plaintext highlighter-rouge">5</code>, <code class="language-plaintext highlighter-rouge">6</code>, <code class="language-plaintext highlighter-rouge">7</code>, <code class="language-plaintext highlighter-rouge">8</code>, <code class="language-plaintext highlighter-rouge">9</code>, <code class="language-plaintext highlighter-rouge">10</code>, <code class="language-plaintext highlighter-rouge">11</code>, <code class="language-plaintext highlighter-rouge">12</code>, <code class="language-plaintext highlighter-rouge">13</code></li>
    </ul>

    <blockquote>
      <p>Tesseract Page Segmentation Modes. See https://tesseract-ocr.github.io/tessdoc/ImproveQuality.html#page-segmentation-method</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Dbpedia Spotlight Wrapper (v1.1)</title><link href="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="Dbpedia Spotlight Wrapper (v1.1)" /><published>2023-07-25T01:22:48+00:00</published><updated>2023-07-25T01:22:48+00:00</updated><id>https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-25T01:22:48+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/pkgs/container/app-dbpedia-spotlight-wrapper/v1.1">ghcr.io/clamsproject/app-dbpedia-spotlight-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply named entity linking to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.1">http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper">https://github.com/clamsproject/app-dbpedia-spotlight-wrapper</a> (<a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: daf5309</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">confidence</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>disambiguation confidence score for linking</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">support</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>resource prominence, i.e. number of in-links in Wikipedia (lower bound)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">types</code>: required</p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>types filter</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">policy</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">whitelist</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">whitelist</code></em></strong>, <code class="language-plaintext highlighter-rouge">blacklist</code></li>
    </ul>

    <blockquote>
      <p>(whitelist) selects all entities of the same type; (blacklist) selects all entities not of the same type</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Chyron Detection (v1.0)</title><link href="https://apps.clams.ai/chyron-detection/v1.0/index.html" rel="alternate" type="text/html" title="Chyron Detection (v1.0)" /><published>2023-07-24T21:50:08+00:00</published><updated>2023-07-24T21:50:08+00:00</updated><id>https://apps.clams.ai/chyron-detection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/chyron-detection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T21:50:08+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-chyron-detection/pkgs/container/app-chyron-detection/v1.0">ghcr.io/clamsproject/app-chyron-detection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects chyrons, generates time segments.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/chyron-detection/v1.0">http://apps.clams.ai/chyron-detection/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-chyron-detection">https://github.com/clamsproject/app-chyron-detection</a> (<a href="https://github.com/clamsproject/app-chyron-detection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>unit for output timeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">5</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential chyrons</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “chyron”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Gentle Forced Aligner Wrapper (v1.0)</title><link href="https://apps.clams.ai/gentle-forced-aligner-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Gentle Forced Aligner Wrapper (v1.0)" /><published>2023-07-24T20:01:10+00:00</published><updated>2023-07-24T20:01:10+00:00</updated><id>https://apps.clams.ai/gentle-forced-aligner-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/gentle-forced-aligner-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T20:01:10+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-gentle-forced-aligner-wrapper/pkgs/container/app-gentle-forced-aligner-wrapper/v1.0">ghcr.io/clamsproject/app-gentle-forced-aligner-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This CLAMS app aligns transcript and audio track using Gentle. Gentle is a robust yet lenient forced aligner built on Kaldi.This app only works when Gentle is already installed locally.Unfortunately, Gentle is not distributed as a Python package distribution.To get Gentle installation instruction, see https://lowerquality.com/gentle/ Make sure install Gentle from the git commit specified in <code class="language-plaintext highlighter-rouge">analyzer_version</code> in this metadata.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/gentle-forced-aligner-wrapper/v1.0">http://apps.clams.ai/gentle-forced-aligner-wrapper/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-gentle-forced-aligner-wrapper">https://github.com/clamsproject/app-gentle-forced-aligner-wrapper</a> (<a href="https://github.com/clamsproject/app-gentle-forced-aligner-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: f29245a</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “speech”</li>
    </ul>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">use_speech_segmentation</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When set true, use exising “speech”-typed <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations and run aligner only on those frames, instead of entire audio files.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">use_tokenization</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When set true, <code class="language-plaintext highlighter-rouge">Alignment</code> annotation output will honor existing latest tokenization (<code class="language-plaintext highlighter-rouge">Token</code> annotations). Due to a limitation of the way Kaldi reads in English tokens, existing tokens must not contain whitespaces.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “speech”</li>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Tone_Detector (v1.0)</title><link href="https://apps.clams.ai/tonedetection/v1.0/index.html" rel="alternate" type="text/html" title="Tone_Detector (v1.0)" /><published>2023-07-24T17:50:36+00:00</published><updated>2023-07-24T17:50:36+00:00</updated><id>https://apps.clams.ai/tonedetection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/tonedetection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/MrSqually">MrSqually</a></li>
  <li>Submission Time: 2023-07-24T17:50:36+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-tonedetection/pkgs/container/app-tonedetection/v1.0">ghcr.io/clamsproject/app-tonedetection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Detects spans of monotonic audio within an audio file</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/tonedetection/v1.0">http://apps.clams.ai/tonedetection/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-tonedetection">https://github.com/clamsproject/app-tonedetection</a> (<a href="https://github.com/clamsproject/app-tonedetection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">seconds</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">seconds</code></em></strong>, <strong><em><code class="language-plaintext highlighter-rouge">seconds</code></em></strong>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>the unit for annotation output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">lengthThreshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>minimum length threshold (in ms)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">512</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>length for each segment of samples to be compared</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">None</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>stop point for audio processing (in ms). Defaults to the length of the file</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">tolerance</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1.0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value for a “match” within audio processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “tone”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS wrapper for spaCy NLP (v1.1)</title><link href="https://apps.clams.ai/spacy-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="CLAMS wrapper for spaCy NLP (v1.1)" /><published>2023-07-24T17:39:56+00:00</published><updated>2023-07-24T17:39:56+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T17:39:56+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spacy-wrapper/pkgs/container/app-spacy-wrapper/v1.1">ghcr.io/clamsproject/app-spacy-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply spaCy NLP to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spacy-wrapper/v1.1">http://apps.clams.ai/spacy-wrapper/v1.1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spacy-wrapper">https://github.com/clamsproject/app-spacy-wrapper</a> (<a href="https://github.com/clamsproject/app-spacy-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 3.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretokenized</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean parameter to set the app to use existing tokenization, if available, for text documents for NLP processing. Useful to process ASR documents, for example.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#pos">http://vocab.lappsgrid.org/Token#pos</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#lemma">http://vocab.lappsgrid.org/Token#lemma</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NounChunk">http://vocab.lappsgrid.org/NounChunk</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Dbpedia Spotlight Wrapper (v1.0)</title><link href="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="Dbpedia Spotlight Wrapper (v1.0)" /><published>2023-07-24T17:07:36+00:00</published><updated>2023-07-24T17:07:36+00:00</updated><id>https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/dbpedia-spotlight-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/wricketts">wricketts</a></li>
  <li>Submission Time: 2023-07-24T17:07:36+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/pkgs/container/app-dbpedia-spotlight-wrapper/v1.0">ghcr.io/clamsproject/app-dbpedia-spotlight-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply named entity linking to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.0">http://apps.clams.ai/dbpedia-spotlight-wrapper/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper">https://github.com/clamsproject/app-dbpedia-spotlight-wrapper</a> (<a href="https://github.com/clamsproject/app-dbpedia-spotlight-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: version_1.0</li>
  <li>Analyzer License: Apache 2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">confidence</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.5</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>disambiguation confidence score for linking</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">support</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>resource prominence, i.e. number of in-links in Wikipedia (lower bound)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">types</code>: required</p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
    </ul>

    <blockquote>
      <p>limits recognition to certain types of named entities, e.g. DBpedia:Place</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">policy</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">whitelist</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">whitelist</code></em></strong>, <code class="language-plaintext highlighter-rouge">blacklist</code></li>
    </ul>

    <blockquote>
      <p>(whitelist) selects all entities of the same type; (blacklist) selects all entities not of the same type</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">EAST Text Detection (v1.0)</title><link href="https://apps.clams.ai/east-textdetection/v1.0/index.html" rel="alternate" type="text/html" title="EAST Text Detection (v1.0)" /><published>2023-07-24T07:53:28+00:00</published><updated>2023-07-24T07:53:28+00:00</updated><id>https://apps.clams.ai/east-textdetection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/east-textdetection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T07:53:28+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-east-textdetection/pkgs/container/app-east-textdetection/v1.0">ghcr.io/clamsproject/app-east-textdetection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>OpenCV-based text localization app that used EAST text detection model. Please visit the source code repository for full documentation.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/east-textdetection/v1.0">http://apps.clams.ai/east-textdetection/v1.0</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-east-textdetection">https://github.com/clamsproject/app-east-textdetection</a> (<a href="https://github.com/clamsproject/app-east-textdetection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/ImageDocument/v1">http://mmif.clams.ai/vocabulary/ImageDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>
<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for time points in the output. Only works with VideoDocument input.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">frameType</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">""</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: True</li>
      <li>Choices: ``, <code class="language-plaintext highlighter-rouge">slate</code>, <code class="language-plaintext highlighter-rouge">chyron</code>, <code class="language-plaintext highlighter-rouge">rolling-credit</code></li>
    </ul>

    <blockquote>
      <p>Segments of video to run on. Only works with VideoDocument input and TimeFrame input. Empty value means run on the every frame types.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames. Only works with VideoDocument input, and without TimeFrame input. (when <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotation is found, this parameter is ignored.)</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">2 * 60 * 60 * 30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop running. Only works with VideoDocument input. The default is roughly 2 hours of video at 30fps.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/BoundingBox/v1">http://mmif.clams.ai/vocabulary/BoundingBox/v1</a>
    <ul>
      <li><em>bboxtype</em> = “text”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Pyscenedetect Wrapper (v2)</title><link href="https://apps.clams.ai/pyscenedetect-wrapper/v2/index.html" rel="alternate" type="text/html" title="Pyscenedetect Wrapper (v2)" /><published>2023-07-24T07:50:09+00:00</published><updated>2023-07-24T07:50:09+00:00</updated><id>https://apps.clams.ai/pyscenedetect-wrapper/v2/index</id><content type="html" xml:base="https://apps.clams.ai/pyscenedetect-wrapper/v2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T07:50:09+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/pkgs/container/app-pyscenedetect-wrapper/v2">ghcr.io/clamsproject/app-pyscenedetect-wrapper:v2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>(no description provided by the developer)</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/pyscenedetect-wrapper/v2">http://apps.clams.ai/pyscenedetect-wrapper/v2</a></li>
  <li>App License: Apache2</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper">https://github.com/clamsproject/app-pyscenedetect-wrapper</a> (<a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/tree/v2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.6.1</li>
  <li>Analyzer License: BSD-3</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">mode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">content</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">content</code></em></strong>, <code class="language-plaintext highlighter-rouge">threshold</code>, <code class="language-plaintext highlighter-rouge">adaptive</code></li>
    </ul>

    <blockquote>
      <p>pick a scene detector algorithm, see http://scenedetect.com/projects/Manual/en/latest/cli/detectors.html</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">27.0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value to use in the detection algorithm. Note that the meaning of this numerical value differs for different detector algorithms.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “shot”</li>
      <li><em>timeUnit</em> = “frame”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v3)</title><link href="https://apps.clams.ai/whisper-wrapper/v3/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v3)" /><published>2023-07-24T07:38:43+00:00</published><updated>2023-07-24T07:38:43+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v3/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v3/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T07:38:43+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v3">ghcr.io/clamsproject/app-whisper-wrapper:v3</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v3">http://apps.clams.ai/whisper-wrapper/v3</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v3">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20230314</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">modelSize</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">tiny</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">tiny</code></em></strong>, <code class="language-plaintext highlighter-rouge">base</code>, <code class="language-plaintext highlighter-rouge">small</code>, <code class="language-plaintext highlighter-rouge">medium</code>, <code class="language-plaintext highlighter-rouge">large</code></li>
    </ul>

    <blockquote>
      <p>The size of the model to use. Can be “tiny”, “base”, “small”, “medium”, or “large”.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Brandeis ACS Wrapper (v2)</title><link href="https://apps.clams.ai/brandeis-acs-wrapper/v2/index.html" rel="alternate" type="text/html" title="Brandeis ACS Wrapper (v2)" /><published>2023-07-24T05:42:05+00:00</published><updated>2023-07-24T05:42:05+00:00</updated><id>https://apps.clams.ai/brandeis-acs-wrapper/v2/index</id><content type="html" xml:base="https://apps.clams.ai/brandeis-acs-wrapper/v2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T05:42:05+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-brandeis-acs-wrapper/pkgs/container/app-brandeis-acs-wrapper/v2">ghcr.io/clamsproject/app-brandeis-acs-wrapper:v2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Brandeis Acoustic Classification &amp; Segmentation (ACS) is a audio segmentation tool developed at Brandeis Lab for Linguistics and Computation. The original software can be found at https://github.com/brandeis-llc/acoustic-classification-segmentation .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/brandeis-acs-wrapper/v2">http://apps.clams.ai/brandeis-acs-wrapper/v2</a></li>
  <li>App License: Apache2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-brandeis-acs-wrapper">https://github.com/clamsproject/app-brandeis-acs-wrapper</a> (<a href="https://github.com/clamsproject/app-brandeis-acs-wrapper/tree/v2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.11</li>
  <li>Analyzer License: Apache2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">inaSpeechSegmenter Wrapper (v1.1)</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1/index.html" rel="alternate" type="text/html" title="inaSpeechSegmenter Wrapper (v1.1)" /><published>2023-07-24T05:31:08+00:00</published><updated>2023-07-24T05:31:08+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-24T05:31:08+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/pkgs/container/app-inaspeechsegmenter-wrapper/v1.1">ghcr.io/clamsproject/app-inaspeechsegmenter-wrapper:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1">http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper">https://github.com/clamsproject/app-inaspeechsegmenter-wrapper</a> (<a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/tree/v1.1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.7.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Slate Detection (v2.0)</title><link href="https://apps.clams.ai/slatedetection/v2.0/index.html" rel="alternate" type="text/html" title="Slate Detection (v2.0)" /><published>2023-07-20T15:07:44+00:00</published><updated>2023-07-20T15:07:44+00:00</updated><id>https://apps.clams.ai/slatedetection/v2.0/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/v2.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-07-20T15:07:44+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-slatedetection/pkgs/container/app-slatedetection/v2.0">ghcr.io/clamsproject/app-slatedetection:v2.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects slates.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/slatedetection/v2.0">http://apps.clams.ai/slatedetection/v2.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-slatedetection">https://github.com/clamsproject/app-slatedetection</a> (<a href="https://github.com/clamsproject/app-slatedetection/tree/v2.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">seconds</code>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit of time to use in output.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">9000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0.7</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “slate”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">inaSpeechSegmenter Wrapper (v1.0)</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.0/index.html" rel="alternate" type="text/html" title="inaSpeechSegmenter Wrapper (v1.0)" /><published>2023-06-20T02:49:35+00:00</published><updated>2023-06-20T02:49:35+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-20T02:49:35+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/pkgs/container/app-inaspeechsegmenter-wrapper/v1.0">ghcr.io/clamsproject/app-inaspeechsegmenter-wrapper:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.0">http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper">https://github.com/clamsproject/app-inaspeechsegmenter-wrapper</a> (<a href="https://github.com/clamsproject/app-inaspeechsegmenter-wrapper/tree/v1.0">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.7.6</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Slate Detection (v1.2)</title><link href="https://apps.clams.ai/slatedetection/v1.2/index.html" rel="alternate" type="text/html" title="Slate Detection (v1.2)" /><published>2023-06-17T11:25:34+00:00</published><updated>2023-06-17T11:25:34+00:00</updated><id>https://apps.clams.ai/slatedetection/v1.2/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/v1.2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-17T11:25:34+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-slatedetection/pkgs/container/app-slatedetection/v1.2">ghcr.io/clamsproject/app-slatedetection:v1.2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects slates.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/slatedetection/v1.2">http://apps.clams.ai/slatedetection/v1.2</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-slatedetection">https://github.com/clamsproject/app-slatedetection</a> (<a href="https://github.com/clamsproject/app-slatedetection/tree/v1.2">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output typeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">540000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “string”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Slate Detection (v1.1)</title><link href="https://apps.clams.ai/slatedetection/v1.1/index.html" rel="alternate" type="text/html" title="Slate Detection (v1.1)" /><published>2023-06-16T18:36:06+00:00</published><updated>2023-06-16T18:36:06+00:00</updated><id>https://apps.clams.ai/slatedetection/v1.1/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/v1.1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-16T18:36:06+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-slatedetection/pkgs/container/app-slatedetection/v1.1">ghcr.io/clamsproject/app-slatedetection:v1.1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects slates.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/slatedetection/v1.1">http://apps.clams.ai/slatedetection/v1.1</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-slatedetection">https://github.com/clamsproject/app-slatedetection</a> (<a href="https://github.com/clamsproject/app-slatedetection/tree/v1.1">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output typeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">540000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “string”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Pyscenedetect Wrapper (v1)</title><link href="https://apps.clams.ai/pyscenedetect-wrapper/v1/index.html" rel="alternate" type="text/html" title="Pyscenedetect Wrapper (v1)" /><published>2023-06-16T06:50:24+00:00</published><updated>2023-06-16T06:50:24+00:00</updated><id>https://apps.clams.ai/pyscenedetect-wrapper/v1/index</id><content type="html" xml:base="https://apps.clams.ai/pyscenedetect-wrapper/v1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-16T06:50:24+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/pkgs/container/app-pyscenedetect-wrapper/v1">ghcr.io/clamsproject/app-pyscenedetect-wrapper:v1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>(no description provided by the developer)</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/pyscenedetect-wrapper/v1">http://apps.clams.ai/pyscenedetect-wrapper/v1</a></li>
  <li>App License: Apache2</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-pyscenedetect-wrapper">https://github.com/clamsproject/app-pyscenedetect-wrapper</a> (<a href="https://github.com/clamsproject/app-pyscenedetect-wrapper/tree/v1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 0.6.1</li>
  <li>Analyzer License: BSD-3</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">mode</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">content</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">content</code></em></strong>, <code class="language-plaintext highlighter-rouge">threshold</code>, <code class="language-plaintext highlighter-rouge">adaptive</code></li>
    </ul>

    <blockquote>
      <p>pick a scene detector algorithm, see http://scenedetect.com/projects/Manual/en/latest/cli/detectors.html</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">27</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>threshold value to use in the detection algorithm. Note that the meaning of this numerical value differs for different detector algorithms.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>frameType</em> = “shot”</li>
      <li><em>timeUnit</em> = “frame”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Slate Detection (v1.0)</title><link href="https://apps.clams.ai/slatedetection/v1.0/index.html" rel="alternate" type="text/html" title="Slate Detection (v1.0)" /><published>2023-06-15T03:53:26+00:00</published><updated>2023-06-15T03:53:26+00:00</updated><id>https://apps.clams.ai/slatedetection/v1.0/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/v1.0/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/kelleyl">kelleyl</a></li>
  <li>Submission Time: 2023-06-15T03:53:26+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-slatedetection/pkgs/container/app-slatedetection/v1.0">ghcr.io/clamsproject/app-slatedetection:v1.0</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>This tool detects slates.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/slatedetection/v1.0">http://apps.clams.ai/slatedetection/v1.0</a></li>
  <li>App License: MIT</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-slatedetection">https://github.com/clamsproject/app-slatedetection</a> (<a href="https://github.com/clamsproject/app-slatedetection/tree/v1.0">source tree of the submitted version</a>)</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">timeUnit</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">frames</code></p>

    <ul>
      <li>Type: string</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">frames</code></em></strong>, <code class="language-plaintext highlighter-rouge">milliseconds</code></li>
    </ul>

    <blockquote>
      <p>Unit for output typeframe</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">sampleRatio</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">30</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frequency to sample frames.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAt</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">540000</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Frame number to stop processing</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">stopAfterOne</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">1</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>When True, processing stops after first timeframe is found</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">minFrameCount</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">10</code></p>

    <ul>
      <li>Type: integer</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Minimum number of frames required for a timeframe to be included in the output</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">threshold</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">0</code></p>

    <ul>
      <li>Type: number</li>
      <li>Multivalued: False</li>
    </ul>

    <blockquote>
      <p>Threshold from 0-1, lower accepts more potential slates.</p>
    </blockquote>
  </li>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretty</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>The JSON body of the HTTP response will be re-formatted with 2-space indentation</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>properties</em> = a complex object with the following keys:
        <ul>
          <li><em>frameType</em> = “string”</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">AAPB-PUA Kaldi Wrapper (v2)</title><link href="https://apps.clams.ai/aapb-pua-kaldi-wrapper/v2/index.html" rel="alternate" type="text/html" title="AAPB-PUA Kaldi Wrapper (v2)" /><published>2023-06-14T00:42:26+00:00</published><updated>2023-06-14T00:42:26+00:00</updated><id>https://apps.clams.ai/aapb-pua-kaldi-wrapper/v2/index</id><content type="html" xml:base="https://apps.clams.ai/aapb-pua-kaldi-wrapper/v2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-14T00:42:26+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper/pkgs/container/app-aapb-pua-kaldi-wrapper/v2">ghcr.io/clamsproject/app-aapb-pua-kaldi-wrapper:v2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p>**A CLAMS wrapper for Kaldi-based ASR software originally developed by PopUpArchive and hipstas, and later updated by Kyeongmin Rim at Brandeis University. Wrapped software can be found at https://github.com/brandeis-llc/aapb-pua-kaldi-docker . **</p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/aapb-pua-kaldi-wrapper/v2">http://apps.clams.ai/aapb-pua-kaldi-wrapper/v2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper">https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper</a> (<a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper/tree/v2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: v4</li>
  <li>Analyzer License: UNKNOWN</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">use_speech_segmentation</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When true, the app looks for existing TimeFrame { “frameType”: “speech” } annotations, and runs ASR only on those frames, instead of entire audio files.</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Brandeis ACS Wrapper (v1)</title><link href="https://apps.clams.ai/brandeis-acs-wrapper/v1/index.html" rel="alternate" type="text/html" title="Brandeis ACS Wrapper (v1)" /><published>2023-06-06T00:30:33+00:00</published><updated>2023-06-06T00:30:33+00:00</updated><id>https://apps.clams.ai/brandeis-acs-wrapper/v1/index</id><content type="html" xml:base="https://apps.clams.ai/brandeis-acs-wrapper/v1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-06T00:30:33+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-brandeis-acs-wrapper/pkgs/container/app-brandeis-acs-wrapper/v1">ghcr.io/clamsproject/app-brandeis-acs-wrapper:v1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Brandeis Acoustic Classification &amp; Segmentation (ACS) is a audio segmentation tool developed at Brandeis Lab for Linguistics and Computation. The original software can be found at https://github.com/brandeis-llc/acoustic-classification-segmentation .</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/brandeis-acs-wrapper/v1">http://apps.clams.ai/brandeis-acs-wrapper/v1</a></li>
  <li>App License: Apache2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-brandeis-acs-wrapper">https://github.com/clamsproject/app-brandeis-acs-wrapper</a> (<a href="https://github.com/clamsproject/app-brandeis-acs-wrapper/tree/v1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 1.11</li>
  <li>Analyzer License: Apache2.0</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<h5 id="na">N/A</h5>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeunit</em> = “milliseconds”</li>
    </ul>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v2)</title><link href="https://apps.clams.ai/whisper-wrapper/v2/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v2)" /><published>2023-06-01T23:46:46+00:00</published><updated>2023-06-01T23:46:46+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v2/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v2/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-01T23:46:46+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v2">ghcr.io/clamsproject/app-whisper-wrapper:v2</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v2">http://apps.clams.ai/whisper-wrapper/v2</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v2">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20230314</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>One of the following is required: [</p>
<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/VideoDocument/v1">http://mmif.clams.ai/vocabulary/VideoDocument/v1</a> (required)
(of any properties)</p>
  </li>
</ul>

<p>]</p>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<h5 id="na">N/A</h5>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">Whisper Wrapper (v1)</title><link href="https://apps.clams.ai/whisper-wrapper/v1/index.html" rel="alternate" type="text/html" title="Whisper Wrapper (v1)" /><published>2023-06-01T14:15:29+00:00</published><updated>2023-06-01T14:15:29+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/v1/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/v1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-06-01T14:15:29+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-whisper-wrapper/pkgs/container/app-whisper-wrapper/v1">ghcr.io/clamsproject/app-whisper-wrapper:v1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/whisper-wrapper/v1">http://apps.clams.ai/whisper-wrapper/v1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-whisper-wrapper">https://github.com/clamsproject/app-whisper-wrapper</a> (<a href="https://github.com/clamsproject/app-whisper-wrapper/tree/v1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 20230314</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<h5 id="na">N/A</h5>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “seconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">AAPB-PUA Kaldi Wrapper (v1)</title><link href="https://apps.clams.ai/aapb-pua-kaldi-wrapper/v1/index.html" rel="alternate" type="text/html" title="AAPB-PUA Kaldi Wrapper (v1)" /><published>2023-05-21T01:20:38+00:00</published><updated>2023-05-21T01:20:38+00:00</updated><id>https://apps.clams.ai/aapb-pua-kaldi-wrapper/v1/index</id><content type="html" xml:base="https://apps.clams.ai/aapb-pua-kaldi-wrapper/v1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-05-21T01:20:38+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper/pkgs/container/app-aapb-pua-kaldi-wrapper/v1">ghcr.io/clamsproject/app-aapb-pua-kaldi-wrapper</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p>**A CLAMS wrapper for Kaldi-based ASR software originally developed by PopUpArchive and hipstas, and later updated by Kyeongmin Rim at Brandeis University. Wrapped software can be found at https://github.com/brandeis-llc/aapb-pua-kaldi-docker . **</p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/aapb-pua-kaldi-wrapper/v1">http://apps.clams.ai/aapb-pua-kaldi-wrapper/v1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper">https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper</a> (<a href="https://github.com/clamsproject/app-aapb-pua-kaldi-wrapper/tree/v1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: v4</li>
  <li>Analyzer License: UNKNOWN</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li><a href="http://mmif.clams.ai/vocabulary/AudioDocument/v1">http://mmif.clams.ai/vocabulary/AudioDocument/v1</a> (required)
(of any properties)</li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">use_speech_segmentation</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">true</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <code class="language-plaintext highlighter-rouge">false</code>, <strong><em><code class="language-plaintext highlighter-rouge">true</code></em></strong></li>
    </ul>

    <blockquote>
      <p>When true, the app looks for existing TimeFrame { “frameType”: “speech” } annotations, and runs ASR only on those frames, instead of entire audio files.</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://mmif.clams.ai/vocabulary/TimeFrame/v1">http://mmif.clams.ai/vocabulary/TimeFrame/v1</a>
    <ul>
      <li><em>timeUnit</em> = “milliseconds”</li>
    </ul>
  </li>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/Alignment/v1">http://mmif.clams.ai/vocabulary/Alignment/v1</a>
(of any properties)</p>
  </li>
  <li><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">CLAMS wrapper for spaCy NLP (v1)</title><link href="https://apps.clams.ai/spacy-wrapper/v1/index.html" rel="alternate" type="text/html" title="CLAMS wrapper for spaCy NLP (v1)" /><published>2023-05-19T22:02:23+00:00</published><updated>2023-05-19T22:02:23+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/v1/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/v1/index.html"><![CDATA[<h2 id="about-this-version">About this version</h2>

<ul>
  <li>Submitter: <a href="https://github.com/keighrim">keighrim</a></li>
  <li>Submission Time: 2023-05-19T22:02:23+00:00</li>
  <li>Prebuilt Container Image: <a href="https://github.com/clamsproject/app-spacy-wrapper/pkgs/container/app-spacy-wrapper/v1">ghcr.io/clamsproject/app-spacy-wrapper:v1</a></li>
  <li>
    <p>Release Notes</p>

    <p>(no notes provided by the developer)</p>
  </li>
</ul>

<h2 id="about-this-app-see-raw-metadatajson">About this app (See raw <a href="metadata.json">metadata.json</a>)</h2>

<p><strong>Apply spaCy NLP to all text documents in a MMIF file.</strong></p>

<ul>
  <li>App ID: <a href="http://apps.clams.ai/spacy-wrapper/v1">http://apps.clams.ai/spacy-wrapper/v1</a></li>
  <li>App License: Apache 2.0</li>
  <li>Source Repository: <a href="https://github.com/clamsproject/app-spacy-wrapper">https://github.com/clamsproject/app-spacy-wrapper</a> (<a href="https://github.com/clamsproject/app-spacy-wrapper/tree/v1">source tree of the submitted version</a>)</li>
  <li>Analyzer Version: 3.1.2</li>
  <li>Analyzer License: MIT</li>
</ul>

<h4 id="inputs">Inputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<ul>
  <li>
    <p><a href="http://mmif.clams.ai/vocabulary/TextDocument/v1">http://mmif.clams.ai/vocabulary/TextDocument/v1</a> (required)
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
</ul>

<h4 id="configurable-parameters">Configurable Parameters</h4>
<p>(<strong>Note</strong>: <em>Multivalued</em> means the parameter can have one or more values.)</p>

<ul>
  <li>
    <p><code class="language-plaintext highlighter-rouge">pretokenized</code>: optional, defaults to <code class="language-plaintext highlighter-rouge">false</code></p>

    <ul>
      <li>Type: boolean</li>
      <li>Multivalued: False</li>
      <li>Choices: <strong><em><code class="language-plaintext highlighter-rouge">false</code></em></strong>, <code class="language-plaintext highlighter-rouge">true</code></li>
    </ul>

    <blockquote>
      <p>Boolean parameter to set the app to use existing tokenization, if available, for text documents for NLP processing. Useful to process ASR documents, for example.</p>
    </blockquote>
  </li>
</ul>

<h4 id="outputs">Outputs</h4>
<p>(<strong>Note</strong>: “*” as a property value means that the property is required but can be any value.)</p>

<p>(<strong>Note</strong>: Not all output annotations are always generated.)</p>

<ul>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token">http://vocab.lappsgrid.org/Token</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#pos">http://vocab.lappsgrid.org/Token#pos</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Token#lemma">http://vocab.lappsgrid.org/Token#lemma</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NounChunk">http://vocab.lappsgrid.org/NounChunk</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/Sentence">http://vocab.lappsgrid.org/Sentence</a>
(of any properties)</p>
  </li>
  <li>
    <p><a href="http://vocab.lappsgrid.org/NamedEntity">http://vocab.lappsgrid.org/NamedEntity</a>
(of any properties)</p>
  </li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[About this version]]></summary></entry><entry><title type="html">whisper-wrapper</title><link href="https://apps.clams.ai/whisper-wrapper/index.html" rel="alternate" type="text/html" title="whisper-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/whisper-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/whisper-wrapper/index.html"><![CDATA[<p>A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI.</p>
<ul>
  <li><a href="v15">v15</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v14">v14</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v13">v13</a> (<a href="https://github.com/Brendayy"><code class="language-plaintext highlighter-rouge">@Brendayy</code></a>)</li>
  <li><a href="v12">v12</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v11">v11</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v10">v10</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v9">v9</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8">v8</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7">v7</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v6">v6</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v5">v5</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v4">v4</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v3">v3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2">v2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1">v1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[A CLAMS wrapper for Whisper-based ASR software originally developed by OpenAI. v15 (@keighrim) v14 (@keighrim) v13 (@Brendayy) v12 (@keighrim) v11 (@keighrim) v10 (@keighrim) v9 (@keighrim) v8 (@keighrim) v7 (@keighrim) v6 (@keighrim) v5 (@keighrim) v4 (@keighrim) v3 (@keighrim) v2 (@keighrim) v1 (@keighrim)]]></summary></entry><entry><title type="html">tonedetection</title><link href="https://apps.clams.ai/tonedetection/index.html" rel="alternate" type="text/html" title="tonedetection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/tonedetection/index</id><content type="html" xml:base="https://apps.clams.ai/tonedetection/index.html"><![CDATA[<p>Detects spans of monotonic audio within an audio file</p>
<ul>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/MrSqually"><code class="language-plaintext highlighter-rouge">@MrSqually</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Detects spans of monotonic audio within an audio file v2.0 (@keighrim) v1.0 (@MrSqually)]]></summary></entry><entry><title type="html">tfidf-keywordextractor</title><link href="https://apps.clams.ai/tfidf-keywordextractor/index.html" rel="alternate" type="text/html" title="tfidf-keywordextractor" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/tfidf-keywordextractor/index</id><content type="html" xml:base="https://apps.clams.ai/tfidf-keywordextractor/index.html"><![CDATA[<p>extract keywords of a text document according to TF-IDF values. IDF values and all features come from related pickle files in the current directory.App can either take a simple text document or take a MMIF file generated from the text slicer app.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/selenasong"><code class="language-plaintext highlighter-rouge">@selenasong</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[extract keywords of a text document according to TF-IDF values. IDF values and all features come from related pickle files in the current directory.App can either take a simple text document or take a MMIF file generated from the text slicer app. v1.0 (@selenasong)]]></summary></entry><entry><title type="html">text-slicer</title><link href="https://apps.clams.ai/text-slicer/index.html" rel="alternate" type="text/html" title="text-slicer" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/text-slicer/index</id><content type="html" xml:base="https://apps.clams.ai/text-slicer/index.html"><![CDATA[<p>Slice text snippets from a provided text document given time frames</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/bohJiang12"><code class="language-plaintext highlighter-rouge">@bohJiang12</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Slice text snippets from a provided text document given time frames v1.0 (@bohJiang12)]]></summary></entry><entry><title type="html">tesseractocr-wrapper</title><link href="https://apps.clams.ai/tesseractocr-wrapper/index.html" rel="alternate" type="text/html" title="tesseractocr-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/tesseractocr-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/tesseractocr-wrapper/index.html"><![CDATA[<p>This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results. v1.0 (@keighrim)]]></summary></entry><entry><title type="html">tesseract</title><link href="https://apps.clams.ai/tesseract/index.html" rel="alternate" type="text/html" title="tesseract" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/tesseract/index</id><content type="html" xml:base="https://apps.clams.ai/tesseract/index.html"><![CDATA[<p>This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results. Currenly only support English language.</p>
<ul>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool applies Tesseract OCR to a video or image and generates text boxes and OCR results. Currenly only support English language. v2.1 (@keighrim) v2.0 (@keighrim)]]></summary></entry><entry><title type="html">swt-detection</title><link href="https://apps.clams.ai/swt-detection/index.html" rel="alternate" type="text/html" title="swt-detection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/swt-detection/index</id><content type="html" xml:base="https://apps.clams.ai/swt-detection/index.html"><![CDATA[<p>Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on <code class="language-plaintext highlighter-rouge">useClassifier</code>, <code class="language-plaintext highlighter-rouge">useStitcher</code> parameters. When <code class="language-plaintext highlighter-rouge">useClassifier=True</code>, it runs in the “TimePoint mode” and generates TimePoint annotations. When <code class="language-plaintext highlighter-rouge">useStitcher=True</code>, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them.</p>
<ul>
  <li><a href="v8.5">v8.5</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8.4">v8.4</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8.3">v8.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8.2">v8.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8.1">v8.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v8.0">v8.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.7">v7.7</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.6">v7.6</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.5">v7.5</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.4">v7.4</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.3">v7.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.2">v7.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.1">v7.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v7.0">v7.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v6.1">v6.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v6.0">v6.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v5.1">v5.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v5.0">v5.0</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v4.4">v4.4</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v4.3">v4.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v4.2">v4.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v4.1">v4.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v4.0">v4.0</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v3.0">v3.0</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Detects scenes with text, like slates, chyrons and credits. This app can run in three modes, depending on useClassifier, useStitcher parameters. When useClassifier=True, it runs in the “TimePoint mode” and generates TimePoint annotations. When useStitcher=True, it runs in the “TimeFrame mode” and generates TimeFrame annotations based on existing TimePoint annotations – if no TimePoint is found, it produces an error. By default, it runs in the ‘both’ mode and first generates TimePoint annotations and then TimeFrame annotations on them. v8.5 (@keighrim) v8.4 (@keighrim) v8.3 (@keighrim) v8.2 (@keighrim) v8.1 (@keighrim) v8.0 (@keighrim) v7.7 (@keighrim) v7.6 (@keighrim) v7.5 (@keighrim) v7.4 (@keighrim) v7.3 (@keighrim) v7.2 (@keighrim) v7.1 (@keighrim) v7.0 (@keighrim) v6.1 (@keighrim) v6.0 (@keighrim) v5.1 (@keighrim) v5.0 (@marcverhagen) v4.4 (@keighrim) v4.3 (@keighrim) v4.2 (@keighrim) v4.1 (@keighrim) v4.0 (@marcverhagen) v3.0 (@marcverhagen) v2.1 (@marcverhagen) v2.0 (@marcverhagen) v1.0 (@marcverhagen)]]></summary></entry><entry><title type="html">spoken-lid</title><link href="https://apps.clams.ai/spoken-lid/index.html" rel="alternate" type="text/html" title="spoken-lid" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/spoken-lid/index</id><content type="html" xml:base="https://apps.clams.ai/spoken-lid/index.html"><![CDATA[<p>Chunk-level language ID over audio based on OpenAI Whisper</p>
<ul>
  <li><a href="v0.3">v0.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v0.2">v0.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v0.1">v0.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Chunk-level language ID over audio based on OpenAI Whisper v0.3 (@keighrim) v0.2 (@keighrim) v0.1 (@keighrim)]]></summary></entry><entry><title type="html">spacy-wrapper</title><link href="https://apps.clams.ai/spacy-wrapper/index.html" rel="alternate" type="text/html" title="spacy-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/spacy-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/spacy-wrapper/index.html"><![CDATA[<p>Apply spaCy NLP to all text documents in a MMIF file.</p>
<ul>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/marcverhagen"><code class="language-plaintext highlighter-rouge">@marcverhagen</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1">v1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Apply spaCy NLP to all text documents in a MMIF file. v2.1 (@keighrim) v2.0 (@keighrim) v1.2 (@marcverhagen) v1.1 (@keighrim) v1 (@keighrim)]]></summary></entry><entry><title type="html">smolvlm2-captioner</title><link href="https://apps.clams.ai/smolvlm2-captioner/index.html" rel="alternate" type="text/html" title="smolvlm2-captioner" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/smolvlm2-captioner/index</id><content type="html" xml:base="https://apps.clams.ai/smolvlm2-captioner/index.html"><![CDATA[<p>Applies the SmolVLM2-2.2B-Instruct multimodal model to video frames selected by input TimeFrame annotations for prompt-driven captioning / scene description. Each invocation runs a single <code class="language-plaintext highlighter-rouge">prompt</code> against the TimeFrames selected by <code class="language-plaintext highlighter-rouge">tfLabels</code>; to apply different prompts to different label subsets (e.g. one prompt for slates, another for chyrons), run the app once per (<code class="language-plaintext highlighter-rouge">prompt</code>, <code class="language-plaintext highlighter-rouge">tfLabels</code>) combination. Per-TimeFrame captioning is composite: every frame sampled from a TF is fed to the model in a single prompt and yields one caption per TF. This app ships only the 2.2B-Instruct variant – the largest and most general-purpose model in the SmolVLM2 family. The smaller (256M and 500M) SmolVLM2 releases are post-trained specifically for video-QA tasks and we do not expect them to generalize well, given their size.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v0.5">v0.5</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v0.4">v0.4</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v0.3">v0.3</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v0.2">v0.2</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v0.1">v0.1</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Applies the SmolVLM2-2.2B-Instruct multimodal model to video frames selected by input TimeFrame annotations for prompt-driven captioning / scene description. Each invocation runs a single prompt against the TimeFrames selected by tfLabels; to apply different prompts to different label subsets (e.g. one prompt for slates, another for chyrons), run the app once per (prompt, tfLabels) combination. Per-TimeFrame captioning is composite: every frame sampled from a TF is fed to the model in a single prompt and yields one caption per TF. This app ships only the 2.2B-Instruct variant – the largest and most general-purpose model in the SmolVLM2 family. The smaller (256M and 500M) SmolVLM2 releases are post-trained specifically for video-QA tasks and we do not expect them to generalize well, given their size. v1.0 (@keighrim) v0.5 (@kelleyl) v0.4 (@kelleyl) v0.3 (@kelleyl) v0.2 (@kelleyl) v0.1 (@kelleyl)]]></summary></entry><entry><title type="html">slatedetection</title><link href="https://apps.clams.ai/slatedetection/index.html" rel="alternate" type="text/html" title="slatedetection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/slatedetection/index</id><content type="html" xml:base="https://apps.clams.ai/slatedetection/index.html"><![CDATA[<p>This tool detects slates.</p>
<ul>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool detects slates. v2.1 (@keighrim) v2.0 (@keighrim) v1.2 (@keighrim) v1.1 (@keighrim) v1.0 (@kelleyl)]]></summary></entry><entry><title type="html">simple-timepoints-stitcher</title><link href="https://apps.clams.ai/simple-timepoints-stitcher/index.html" rel="alternate" type="text/html" title="simple-timepoints-stitcher" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/simple-timepoints-stitcher/index</id><content type="html" xml:base="https://apps.clams.ai/simple-timepoints-stitcher/index.html"><![CDATA[<p>Stitches a sequence of <code class="language-plaintext highlighter-rouge">TimePoint</code> annotations into a sequence of <code class="language-plaintext highlighter-rouge">TimeFrame</code> annotations, performing simple smoothing of short peaks of positive labels.</p>
<ul>
  <li><a href="v3.0">v3.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.3">v1.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Stitches a sequence of TimePoint annotations into a sequence of TimeFrame annotations, performing simple smoothing of short peaks of positive labels. v3.0 (@keighrim) v2.1 (@keighrim) v2.0 (@keighrim) v1.3 (@keighrim) v1.2 (@keighrim) v1.1 (@keighrim) v1.0 (@keighrim)]]></summary></entry><entry><title type="html">pyscenedetect-wrapper</title><link href="https://apps.clams.ai/pyscenedetect-wrapper/index.html" rel="alternate" type="text/html" title="pyscenedetect-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/pyscenedetect-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/pyscenedetect-wrapper/index.html"><![CDATA[<p>CLAMS app wraps PySceneDetect and performs shot boundary detection on input videos</p>
<ul>
  <li><a href="v4">v4</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v3">v3</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v2">v2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1">v1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[CLAMS app wraps PySceneDetect and performs shot boundary detection on input videos v4 (@kelleyl) v3 (@kelleyl) v2 (@keighrim) v1 (@keighrim)]]></summary></entry><entry><title type="html">parseqocr-wrapper</title><link href="https://apps.clams.ai/parseqocr-wrapper/index.html" rel="alternate" type="text/html" title="parseqocr-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/parseqocr-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/parseqocr-wrapper/index.html"><![CDATA[<p>This tool applies Parseq OCR to a video or image and generates text boxes and OCR results.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool applies Parseq OCR to a video or image and generates text boxes and OCR results. v1.0 (@keighrim)]]></summary></entry><entry><title type="html">parakeet-wrapper</title><link href="https://apps.clams.ai/parakeet-wrapper/index.html" rel="alternate" type="text/html" title="parakeet-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/parakeet-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/parakeet-wrapper/index.html"><![CDATA[<p>A CLAMS wrapper for NVIDIA NeMo Parakeet ASR models available on huggingface-hub with support for punctuation, capitalization, and word-level timestamping.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/shel-ho"><code class="language-plaintext highlighter-rouge">@shel-ho</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[A CLAMS wrapper for NVIDIA NeMo Parakeet ASR models available on huggingface-hub with support for punctuation, capitalization, and word-level timestamping. v1.0 (@shel-ho)]]></summary></entry><entry><title type="html">nfa-wrapper</title><link href="https://apps.clams.ai/nfa-wrapper/index.html" rel="alternate" type="text/html" title="nfa-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/nfa-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/nfa-wrapper/index.html"><![CDATA[<p>Wraps the <a href="https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/tools/nemo_forced_aligner.html">NVIDIA NeMo Forced Aligner tool</a> to temporally align transcribed text with its audio source.</p>
<ul>
  <li><a href="v0.1">v0.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Wraps the NVIDIA NeMo Forced Aligner tool to temporally align transcribed text with its audio source. v0.1 (@keighrim)]]></summary></entry><entry><title type="html">llava-captioner</title><link href="https://apps.clams.ai/llava-captioner/index.html" rel="alternate" type="text/html" title="llava-captioner" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/llava-captioner/index</id><content type="html" xml:base="https://apps.clams.ai/llava-captioner/index.html"><![CDATA[<p>Applies LLaVA v1.6 Mistral-7B to video frames for image captioning.</p>
<ul>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/kelleyl"><code class="language-plaintext highlighter-rouge">@kelleyl</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Applies LLaVA v1.6 Mistral-7B to video frames for image captioning. v1.2 (@kelleyl) v1.1 (@kelleyl) v1.0 (@kelleyl)]]></summary></entry><entry><title type="html">inaspeechsegmenter-wrapper</title><link href="https://apps.clams.ai/inaspeechsegmenter-wrapper/index.html" rel="alternate" type="text/html" title="inaspeechsegmenter-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/inaspeechsegmenter-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/inaspeechsegmenter-wrapper/index.html"><![CDATA[<p>inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter .</p>
<ul>
  <li><a href="v2.1">v2.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v2.0">v2.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[inaSpeechSegmenter is a CNN-based audio segmentation toolkit. The original software can be found at https://github.com/ina-foss/inaSpeechSegmenter . v2.1 (@keighrim) v2.0 (@keighrim) v1.2 (@keighrim) v1.1 (@keighrim) v1.0 (@keighrim)]]></summary></entry><entry><title type="html">heuristic-chyron-understanding</title><link href="https://apps.clams.ai/heuristic-chyron-understanding/index.html" rel="alternate" type="text/html" title="heuristic-chyron-understanding" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/heuristic-chyron-understanding/index</id><content type="html" xml:base="https://apps.clams.ai/heuristic-chyron-understanding/index.html"><![CDATA[<p>Prototype to convert chyron text from docTR/Tesseract/LLaVA MMIF outputinto a name and list of attributes.</p>
<ul>
  <li><a href="v0.2">v0.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Prototype to convert chyron text from docTR/Tesseract/LLaVA MMIF outputinto a name and list of attributes. v0.2 (@keighrim)]]></summary></entry><entry><title type="html">gentle-forced-aligner-wrapper</title><link href="https://apps.clams.ai/gentle-forced-aligner-wrapper/index.html" rel="alternate" type="text/html" title="gentle-forced-aligner-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/gentle-forced-aligner-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/gentle-forced-aligner-wrapper/index.html"><![CDATA[<p>This CLAMS app aligns transcript and audio track using Gentle. Gentle is a robust yet lenient forced aligner built on Kaldi.This app only works when Gentle is already installed locally.Unfortunately, Gentle is not distributed as a Python package distribution.To get Gentle installation instruction, see https://lowerquality.com/gentle/ Make sure install Gentle from the git commit specified in <code class="language-plaintext highlighter-rouge">analyzer_version</code> in this metadata.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This CLAMS app aligns transcript and audio track using Gentle. Gentle is a robust yet lenient forced aligner built on Kaldi.This app only works when Gentle is already installed locally.Unfortunately, Gentle is not distributed as a Python package distribution.To get Gentle installation instruction, see https://lowerquality.com/gentle/ Make sure install Gentle from the git commit specified in analyzer_version in this metadata. v1.0 (@keighrim)]]></summary></entry><entry><title type="html">fewshotclassifier</title><link href="https://apps.clams.ai/fewshotclassifier/index.html" rel="alternate" type="text/html" title="fewshotclassifier" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/fewshotclassifier/index</id><content type="html" xml:base="https://apps.clams.ai/fewshotclassifier/index.html"><![CDATA[<p>This tool uses a vision model to classify video segments. Currenly supports “chyron” frame type.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool uses a vision model to classify video segments. Currenly supports “chyron” frame type. v1.0 (@keighrim)]]></summary></entry><entry><title type="html">easyocr-wrapper</title><link href="https://apps.clams.ai/easyocr-wrapper/index.html" rel="alternate" type="text/html" title="easyocr-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/easyocr-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/easyocr-wrapper/index.html"><![CDATA[<p>Using EasyOCR to extract text from timeframes</p>
<ul>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/snewman-aa"><code class="language-plaintext highlighter-rouge">@snewman-aa</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/snewman-aa"><code class="language-plaintext highlighter-rouge">@snewman-aa</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Using EasyOCR to extract text from timeframes v1.1 (@snewman-aa) v1.0 (@snewman-aa)]]></summary></entry><entry><title type="html">east-textdetection</title><link href="https://apps.clams.ai/east-textdetection/index.html" rel="alternate" type="text/html" title="east-textdetection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/east-textdetection/index</id><content type="html" xml:base="https://apps.clams.ai/east-textdetection/index.html"><![CDATA[<p>OpenCV-based text localization app that used EAST text detection model. Please visit the source code repository for full documentation.</p>
<ul>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/MrSqually"><code class="language-plaintext highlighter-rouge">@MrSqually</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[OpenCV-based text localization app that used EAST text detection model. Please visit the source code repository for full documentation. v1.2 (@MrSqually) v1.1 (@keighrim) v1.0 (@keighrim)]]></summary></entry><entry><title type="html">doctr-wrapper</title><link href="https://apps.clams.ai/doctr-wrapper/index.html" rel="alternate" type="text/html" title="doctr-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/doctr-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/doctr-wrapper/index.html"><![CDATA[<p>CLAMS app wraps the <a href="https://pypi.org/project/python-doctr">docTR, End-to-End OCR model</a>. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into <code class="language-plaintext highlighter-rouge">TextDocument</code>, <code class="language-plaintext highlighter-rouge">Paragraphs</code>, <code class="language-plaintext highlighter-rouge">Sentence</code>, and <code class="language-plaintext highlighter-rouge">Token</code> annotations to represent recognized text contents. See descriptions for I/O types below  for details on how annotations are aligned to each other.</p>
<ul>
  <li><a href="v1.4">v1.4</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.3">v1.3</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[CLAMS app wraps the docTR, End-to-End OCR model. The model can detect text regions in the input image and recognize text in the regions (via parseq OCR model, only English is support at the moment). The text-localized regions are organized hierarchically by the model into “pages” &gt; “blocks” &gt; “lines” &gt; “words”, and this CLAMS app translates them into TextDocument, Paragraphs, Sentence, and Token annotations to represent recognized text contents. See descriptions for I/O types below for details on how annotations are aligned to each other. v1.4 (@keighrim) v1.3 (@keighrim) v1.2 (@keighrim) v1.1 (@keighrim) v1.0 (@keighrim)]]></summary></entry><entry><title type="html">distil-whisper-wrapper</title><link href="https://apps.clams.ai/distil-whisper-wrapper/index.html" rel="alternate" type="text/html" title="distil-whisper-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/distil-whisper-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/distil-whisper-wrapper/index.html"><![CDATA[<p>The wrapper of Distil-Whisper, avaliable models: distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. The default model is distil-small.en.</p>
<ul>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/BenLambright"><code class="language-plaintext highlighter-rouge">@BenLambright</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/1192119703jzx"><code class="language-plaintext highlighter-rouge">@1192119703jzx</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[The wrapper of Distil-Whisper, avaliable models: distil-large-v3, distil-large-v2, distil-medium.en, distil-small.en. The default model is distil-small.en. v1.2 (@BenLambright) v1.1 (@keighrim) v1.0 (@1192119703jzx)]]></summary></entry><entry><title type="html">dbpedia-spotlight-wrapper</title><link href="https://apps.clams.ai/dbpedia-spotlight-wrapper/index.html" rel="alternate" type="text/html" title="dbpedia-spotlight-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/dbpedia-spotlight-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/dbpedia-spotlight-wrapper/index.html"><![CDATA[<p>Apply named entity linking to all text documents in a MMIF file.</p>
<ul>
  <li><a href="v1.2">v1.2</a> (<a href="https://github.com/wricketts"><code class="language-plaintext highlighter-rouge">@wricketts</code></a>)</li>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/wricketts"><code class="language-plaintext highlighter-rouge">@wricketts</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Apply named entity linking to all text documents in a MMIF file. v1.2 (@wricketts) v1.1 (@keighrim) v1.0 (@wricketts)]]></summary></entry><entry><title type="html">chyron-detection</title><link href="https://apps.clams.ai/chyron-detection/index.html" rel="alternate" type="text/html" title="chyron-detection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/chyron-detection/index</id><content type="html" xml:base="https://apps.clams.ai/chyron-detection/index.html"><![CDATA[<p>This tool detects chyrons, generates time segments.</p>
<ul>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool detects chyrons, generates time segments. v1.0 (@keighrim)]]></summary></entry><entry><title type="html">brandeis-acs-wrapper</title><link href="https://apps.clams.ai/brandeis-acs-wrapper/index.html" rel="alternate" type="text/html" title="brandeis-acs-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/brandeis-acs-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/brandeis-acs-wrapper/index.html"><![CDATA[<p>Brandeis Acoustic Classification &amp; Segmentation (ACS) is a audio segmentation tool developed at Brandeis Lab for Linguistics and Computation. The original software can be found at https://github.com/brandeis-llc/acoustic-classification-segmentation .</p>
<ul>
  <li><a href="v2">v2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1">v1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[Brandeis Acoustic Classification &amp; Segmentation (ACS) is a audio segmentation tool developed at Brandeis Lab for Linguistics and Computation. The original software can be found at https://github.com/brandeis-llc/acoustic-classification-segmentation . v2 (@keighrim) v1 (@keighrim)]]></summary></entry><entry><title type="html">barsdetection</title><link href="https://apps.clams.ai/barsdetection/index.html" rel="alternate" type="text/html" title="barsdetection" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/barsdetection/index</id><content type="html" xml:base="https://apps.clams.ai/barsdetection/index.html"><![CDATA[<p>This tool detects SMPTE color bars.</p>
<ul>
  <li><a href="v1.1">v1.1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1.0">v1.0</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[This tool detects SMPTE color bars. v1.1 (@keighrim) v1.0 (@keighrim)]]></summary></entry><entry><title type="html">aapb-pua-kaldi-wrapper</title><link href="https://apps.clams.ai/aapb-pua-kaldi-wrapper/index.html" rel="alternate" type="text/html" title="aapb-pua-kaldi-wrapper" /><published>1970-01-01T00:00:00+00:00</published><updated>1970-01-01T00:00:00+00:00</updated><id>https://apps.clams.ai/aapb-pua-kaldi-wrapper/index</id><content type="html" xml:base="https://apps.clams.ai/aapb-pua-kaldi-wrapper/index.html"><![CDATA[<p>A CLAMS wrapper for Kaldi-based ASR software originally developed by PopUpArchive and hipstas, and later updated by Kyeongmin Rim at Brandeis University. Wrapped software can be found at https://github.com/brandeis-llc/aapb-pua-kaldi-docker .</p>
<ul>
  <li><a href="v2">v2</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
  <li><a href="v1">v1</a> (<a href="https://github.com/keighrim"><code class="language-plaintext highlighter-rouge">@keighrim</code></a>)</li>
</ul>]]></content><author><name>CLAMS Team</name><email>admin@clams.ai</email></author><summary type="html"><![CDATA[A CLAMS wrapper for Kaldi-based ASR software originally developed by PopUpArchive and hipstas, and later updated by Kyeongmin Rim at Brandeis University. Wrapped software can be found at https://github.com/brandeis-llc/aapb-pua-kaldi-docker . v2 (@keighrim) v1 (@keighrim)]]></summary></entry></feed>