From cac70177f3bf30f4b69e2da28228f7badbd3f13d Mon Sep 17 00:00:00 2001 From: ANLGBOY Date: Mon, 24 Nov 2025 11:54:57 +0900 Subject: [PATCH] feat: Flutter example with macOS support --- README.md | 7 ++++++- flutter/lib/main.dart | 21 +++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 08de3fe..7404176 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ https://github.com/user-attachments/assets/ea66f6d6-7bc5-4308-8a88-1ce3e07400d2 > 🎧 **Try it now**: Experience Supertonic in your browser with our [**Interactive Demo**](https://huggingface.co/spaces/Supertone/supertonic#interactive-demo), or get started with pre-trained models from [**Hugging Face Hub**](https://huggingface.co/Supertone/supertonic) +## 📰 Update News + +**2025.11.24** - Added Flutter SDK support with macOS compatibility + ### Table of Contents - [Why Supertonic?](#why-supertonic) @@ -49,6 +53,7 @@ We provide ready-to-use TTS inference examples across multiple ecosystems: | [**Swift**](swift/) | `swift/` | macOS applications | | [**iOS**](ios/) | `ios/` | Native iOS apps | | [**Rust**](rust/) | `rust/` | Memory-safe systems | +| [**Flutter**](flutter/) | `flutter/` | Cross-platform apps | > For detailed usage instructions, please refer to the README.md in each language directory. @@ -386,7 +391,7 @@ This paper describes the self-purification technique for training flow matching ## License -This project’s sample code is released under the MIT License. - see the [LICENSE](https://github.com/supertone-inc/supertonic?tab=MIT-1-ov-file) for details. +This project's sample code is released under the MIT License. - see the [LICENSE](https://github.com/supertone-inc/supertonic?tab=MIT-1-ov-file) for details. The accompanying model is released under the OpenRAIL-M License. - see the [LICENSE](https://huggingface.co/Supertone/supertonic/blob/main/LICENSE) file for details. diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index b0abcaa..f9b8791 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -14,7 +14,7 @@ class SupertonicApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Supertonic TTS', + title: 'Supertonic', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, @@ -208,7 +208,7 @@ class _TTSPageState extends State { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, - title: const Text('Supertonic TTS'), + title: const Text('Supertonic'), ), body: Padding( padding: const EdgeInsets.all(16.0), @@ -234,7 +234,8 @@ class _TTSPageState extends State { ), if (_isLoading || _isGenerating) const SizedBox(width: 12), Expanded( - child: Text(_status, style: const TextStyle(fontSize: 16)), + child: + Text(_status, style: const TextStyle(fontSize: 16)), ), ], ), @@ -256,8 +257,7 @@ class _TTSPageState extends State { const SizedBox(height: 24), // Parameters - Text('Parameters', - style: Theme.of(context).textTheme.titleMedium), + Text('Parameters', style: Theme.of(context).textTheme.titleMedium), const SizedBox(height: 12), // Denoising steps slider @@ -274,13 +274,14 @@ class _TTSPageState extends State { label: _totalSteps.toString(), onChanged: _isLoading || _isGenerating ? null - : (value) => setState(() => _totalSteps = value.toInt()), + : (value) => + setState(() => _totalSteps = value.toInt()), ), ), SizedBox( width: 40, - child: Text(_totalSteps.toString(), - textAlign: TextAlign.right), + child: + Text(_totalSteps.toString(), textAlign: TextAlign.right), ), ], ), @@ -304,8 +305,8 @@ class _TTSPageState extends State { ), SizedBox( width: 40, - child: - Text(_speed.toStringAsFixed(2), textAlign: TextAlign.right), + child: Text(_speed.toStringAsFixed(2), + textAlign: TextAlign.right), ), ], ),