diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47e1dfd0..b7116d39 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,6 +53,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Fixed
+- Audio export failing when Tauri save dialog returns object instead of string path
+
### Added
- **Makefile** - Comprehensive development workflow automation with commands for setup, development, building, testing, and code quality checks
- Includes Python version detection and compatibility warnings
diff --git a/README.md b/README.md
index 666f042c..9d0d39dd 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,7 @@
## What is Voicebox?
-Voicebox is a **local-first voice cloning studio** with DAW-like features for professional voice synthesis. Think of it as the **Ollama for voice** — download models, clone voices, and generate speech entirely on your machine.
+Voicebox is a **local-first voice cloning studio** with DAW-like features for professional voice synthesis. Think of it as a **local, free and open-source alternative to ElevenLabs** — download models, clone voices, and generate speech entirely on your machine.
Unlike cloud services that lock your voice data behind subscriptions, Voicebox gives you:
diff --git a/app/src/components/Generation/FloatingGenerateBox.tsx b/app/src/components/Generation/FloatingGenerateBox.tsx
index 1fa586e8..2e99d337 100644
--- a/app/src/components/Generation/FloatingGenerateBox.tsx
+++ b/app/src/components/Generation/FloatingGenerateBox.tsx
@@ -189,7 +189,7 @@ export function FloatingGenerateBox({
}}
>
diff --git a/landing/src/app/page.tsx b/landing/src/app/page.tsx
index 46cf3556..4ba9d8c4 100644
--- a/landing/src/app/page.tsx
+++ b/landing/src/app/page.tsx
@@ -239,8 +239,9 @@ export default function Home() {
Voicebox is a local-first voice cloning studio with DAW-like features - for professional voice synthesis. Think of it as the Ollama for voice{' '} - — download models, clone voices, and generate speech entirely on your machine. + for professional voice synthesis. Think of it as a{' '} + local, free and open-source alternative to ElevenLabs — download + models, clone voices, and generate speech entirely on your machine.
Unlike cloud services that lock your voice data behind subscriptions, Voicebox gives diff --git a/tauri/src/platform/filesystem.ts b/tauri/src/platform/filesystem.ts index 7c057a6d..70972eb2 100644 --- a/tauri/src/platform/filesystem.ts +++ b/tauri/src/platform/filesystem.ts @@ -10,9 +10,20 @@ export const tauriFilesystem: PlatformFilesystem = { }); if (filePath) { - const { writeBinaryFile } = await import('@tauri-apps/plugin-fs'); + let resolvedPath = ''; + if (typeof filePath === 'string') { + resolvedPath = filePath; + } else if (filePath && typeof filePath === 'object' && 'path' in filePath) { + resolvedPath = (filePath as { path: string }).path; + } + + if (!resolvedPath) { + throw new Error('Failed to resolve save path'); + } + + const { writeFile } = await import('@tauri-apps/plugin-fs'); const arrayBuffer = await blob.arrayBuffer(); - await writeBinaryFile(filePath, new Uint8Array(arrayBuffer)); + await writeFile(resolvedPath, new Uint8Array(arrayBuffer)); } } catch (error) { console.error('Failed to use Tauri dialog, falling back to browser download:', error);