add support for GPU (cuda)

This commit is contained in:
pluja
2023-10-27 10:23:08 +02:00
parent f4484884cc
commit 5570a745f8
7 changed files with 170 additions and 22 deletions

View File

@@ -1,5 +1,5 @@
<script>
import { validateURL, CLIENT_API_HOST } from '$lib/utils.js';
import { validateURL, CLIENT_API_HOST, WHISHPER_GPU } from '$lib/utils.js';
import toast from 'svelte-french-toast';
@@ -9,6 +9,7 @@
let language = 'auto';
let sourceUrl = '';
let fileInput;
let device = (WHISHPER_GPU) ? 'cuda' : 'cpu';
let languages = [
'auto',
@@ -71,6 +72,11 @@
let formData = new FormData();
formData.append('language', language);
formData.append('modelSize', modelSize);
if (device == 'cuda' || device == 'cpu') {
formData.append('device', device);
} else {
formData.append('device', 'cpu');
}
formData.append('sourceUrl', sourceUrl);
if (sourceUrl == '') {
formData.append('file', fileInput.files[0]);
@@ -169,6 +175,21 @@
{/each}
</select>
</div>
<div class="w-full max-w-xs form-control">
<label for="language" class="label">
<span class="label-text">Device</span>
</label>
<select name="device" bind:value={device} class="select select-bordered">
{#if WHISHPER_GPU }
<option selected value="cuda">GPU</option>
<option value="cpu">CPU</option>
{:else}
<option selected value="cpu">CPU</option>
<option disabled value="cuda">GPU</option>
{/if}
</select>
</div>
</div>
<div class="mb-0 divider" />

View File

@@ -1,11 +1,14 @@
import {transcriptions} from './stores';
import { dev } from '$app/environment';
import { browser } from '$app/environment';
import { env } from '$env/dynamic/public';
export let CLIENT_API_HOST = browser ? `${dev ? import.meta.env.VITE_API_HOST : ""}` : `${process.env.INTERNAL_API_HOST}`;
export let CLIENT_WS_HOST = browser ? `${dev ? import.meta.env.VITE_API_HOST.replace("http://", "").replace("https://", "") : ""}` : `${dev ? process.env.INTERNAL_API_HOST.replace("http://", "").replace("https://", "") : ""}`;
export let TRANSLATION_API_HOST = browser ? `${dev ? import.meta.env.VITE_TRANSLATION_API_HOST : ""}` : `${dev ? process.env.VITE_TRANSLATION_API_HOST : ""}`;
export let CLIENT_API_HOST = browser ? `${dev ? env.PUBLIC_API_HOST : ""}` : `${env.PUBLIC_INTERNAL_API_HOST}`;
export let CLIENT_WS_HOST = browser ? `${dev ? env.PUBLIC_API_HOST.replace("http://", "").replace("https://", "") : ""}` : `${dev ? env.PUBLIC_INTERNAL_API_HOST.replace("http://", "").replace("https://", "") : ""}`;
export let TRANSLATION_API_HOST = browser ? `${dev ? env.PUBLIC_TRANSLATION_API_HOST : ""}` : `${dev ? env.PUBLIC_TRANSLATION_API_HOST : ""}`;
export let WHISHPER_GPU = env.PUBLIC_WHISHPER_GPU === 'true' ||
env.PUBLIC_WHISHPER_GPU === 'True' ||
env.PUBLIC_WHISHPER_GPU === '1';
// URL Validator
export const validateURL = function (url) {
try {