gradio/js/audio
Yuichiro Tachibana (Tsuchiya) 67ddd40b4b
Lite v4 (#6398)
* Fix vite.config.js detecting the development mode

* Fix the imports of @gradio/theme in js/app/src/lite/index.ts

* [WIP] Install Pydantic V1 and mock the RootModel class

* Remove Wasm WebSocket implementations

* Move ASGI-HTTP conversion logic from the worker to the worker-proxy so we have fine controls on the ASGI connection at the worker-proxy level for the HTTP stream connection impl in the future

* Fix asgi-types.ts

* Create `WasmWorkerEventSource` and inject the `EventSource` creation in @gradio/client

* Mock Pydantic V2's BaseModel

* Fix Pydantic V1 installation

* Make <ImageUploader /> and <ImagePreview /> Wasm-compatible

* Create `getHeaderValue()`

* Create `<DownloadLink />` for Wasm-compatible download and fix `<ImagePreview />` to use it

* Make `gr.Video()` Wasm-compatible avoiding unnecessary execution of ffprobe

* Move `<DownloadLink />` to @gradio/wasm and use it in `<VideoPreview />` too

* Fix `<DownloadLink />` making `href` optional and adding `rel="noopener noreferrer"`

* Make the download button of `<StaticAudio>` and `<Code />` Wasm-compatible

* Make the download button of `<FilePreview />` Wasm-compatible

* Improve the RootModel mock class for `.model_dump()` and `.model_json_schame()` to work

* Make `<UploadProgress />` Wasm-compatible

* Fix `WorkerProxy.httpRequest()` to use `decodeURIComponent()` to process `path` and `query_string`

* Fix `<InteractiveAudio />` to make its upload feature Wasm-compatible

* [WIP] Revert "Make `<UploadProgress />` Wasm-compatible"

This reverts commit f96b4b7d5e92bb488cfe1939d25063366f714178.

* Fix Image styles

* Fix `<AudioPlayer />`'s `create_waveform()` to be Wasm-compatible

* add changeset

* formatting

* Fix js/image/shared/Image.svelte to render <img> immediately

* Fix js/image/shared/Image.svelte to avoid race condition

* Fix  js/image/shared/Image.svelte

* Fix  js/image/shared/Image.svelte

* Fix js/image/shared/Image.svelte removing unnecessary styles

* Fix js/video/shared/Video.svelte to use the passed  immediately without waiting for the async resolution

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: aliabd <ali.si3luwa@gmail.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2023-12-12 22:10:16 +00:00
..
interactive Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
player Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
recorder Add show_recording_waveform to Audio (#6551) 2023-12-04 14:00:51 -08:00
shared Add editable parameter to Audio (#6745) 2023-12-11 18:42:21 +01:00
static Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
streaming Add show_recording_waveform to Audio (#6551) 2023-12-04 14:00:51 -08:00
Audio.stories.svelte Add editable parameter to Audio (#6745) 2023-12-11 18:42:21 +01:00
audio.test.ts Add volume control to Audio (#6254) 2023-11-15 13:19:02 +01:00
CHANGELOG.md chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
Example.svelte Version 4 development branch (#5498) 2023-10-31 04:46:02 +00:00
Index.svelte Add editable parameter to Audio (#6745) 2023-12-11 18:42:21 +01:00
index.ts Version 4 development branch (#5498) 2023-10-31 04:46:02 +00:00
package.json chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
README.md Version 4 development branch (#5498) 2023-10-31 04:46:02 +00:00

@gradio/audio

<script>
	import { BaseStaticAudio, BaseInteractiveAudio, BasePlayer, BaseExample } from "@gradio/audio";
</script>

BaseExample:

	export let value: string;
	export let type: "gallery" | "table";
	export let selected = false;

BaseStaticAudio:

	export let value: null | { name: string; data: string } = null;
	export let label: string;
	export let name: string;
	export let show_label = true;
	export let autoplay: boolean;
	export let show_download_button = true;
	export let show_share_button = false;
	export let i18n: I18nFormatter;
	export let waveform_settings = {};

BaseInteractiveAudio:

	export let value: null | { name: string; data: string } = null;
	export let label: string;
	export let root: string;
	export let show_label = true;
	export let sources:
		| ["microphone"]
		| ["upload"]
		| ["microphone", "upload"]
		| ["upload", "microphone"] = ["microphone", "upload"];
	export let pending = false;
	export let streaming = false;
	export let autoplay = false;
	export let i18n: I18nFormatter;
	export let waveform_settings = {};
	export let dragging: boolean;
	export let active_source: "microphone" | "upload";
	export let handle_reset_value: () => void = () => {};

BasePlayer:

	export let value: null | { name: string; data: string } = null;
	export let label: string;
	export let autoplay: boolean;
	export let i18n: I18nFormatter;
	export let dispatch: (event: any, detail?: any) => void;
	export let dispatch_blob: (
		blobs: Uint8Array[] | Blob[],
		event: "stream" | "change" | "stop_recording"
	) => Promise<void> = () => Promise.resolve();
	export let interactive = false;
	export let waveform_settings = {};
	export let mode = "";
	export let handle_reset_value: () => void = () => {};