Sobota 31. 10.Svátek má Štěpánka
novinkyAI
novinkyAI
novinkyAI

Zprávy

Hugging Face: Swift balíčky pro přepis řeči a rozhodování na zařízeních Apple

Hugging Face zveřejnil dva balíčky pro jazyk Swift, které pustí otevřené modely pro přepis řeči a rozhodování přímo na zařízení. Autor je změřil na Macu s čipem M4 Max a uvádí chybovost i rychlost.

Hugging Face zveřejnil dva balíčky pro jazyk Swift, které pustí otevřené modely pro přepis řeči a rozhodování přímo na zařízení. Autor je změřil na Macu s čipem M4 Max a uvádí chybovost i rychlost.

Hugging Face zveřejnil dva balíčky pro jazyk Swift, které pustí otevřené modely pro přepis řeči a rozhodování přímo na zařízení. Autor je změřil na Macu s čipem M4 Max a uvádí chybovost i rychlost.

·

4 min

Ilustrace přepisu řeči a hlasových modelů

Vývojáři aplikací pro Apple mají dva nové balíčky v jazyce Swift. AnySpeechRecognizer umožňuje přepisovat řeč otevřenými modely z Hugging Face Hubu, AnyDecisionModel zase z jazykových modelů získává odpovědi na otázky typu ano/ne, výběr z možností nebo hodnocení na stupnici, a to s pravděpodobnostmi. Oba balíčky představil 29. října 2026 na blogu Hugging Face autor podepsaný jako Mattt. Modely běží lokálně a stahují se z Hubu.

Přepis řeči s vlastním motorem

AnySpeechRecognizer implementuje rozhraní SpeechAnalyzer od Applu, které přišlo s macOS 26 a iOS 26, ale nechává vývojáře vybrat si rozpoznávací engine. Výchozí je Apple. Podle příspěvku stačí u stávajícího kódu změnit import Speech na import AnySpeechRecognizer. Přechod na NVIDIA Parakeet pak znamená jen jinak vytvořený transkriptor pomocí ParakeetSpeechModel(variant: .v3).

K dispozici jsou čtyři modely. Parakeet TDT 0.6B v3 od NVIDIA rozpozná 25 evropských jazyků a jazyk si určí sám. Parakeet Ultra je verze od společnosti Moondream dotrénovaná z v3 a podle autorů byla ve většině měření přesnější. Parakeet Unified je anglický model od NVIDIA. Qwen3-ASR od Alibaby existuje ve velikostech 0,6B a 1,7B, zvládá 30 jazyků a 22 čínských dialektů, ale je pomalejší, běží na GPU a hodí se spíš na přepis souborů než na živý vstup. Zda je mezi jazyky Parakeetu čeština, příspěvek nepíše, takže si to ověřte v kartě modelu.

Měření a rozpoznání mluvčích

Autoři měřili na Mac Studiu s čipem M4 Max a macOS 27.0.1, a to na nahrávkách LibriSpeech dlouhých 3 až 8 minut. Parakeet v3 při přepisu souboru dosáhl chybovosti slov 1,55 % na sadě test-clean a 2,78 % na sadě test-other. Parakeet Unified měl 1,43 % a 2,19 %, přepis od Applu 2,12 % a 3,97 %. Hodinu zvuku Parakeet přepíše za 20 až 40 sekund ze souboru, nebo za 1,5 až 2,5 minuty při živém vstupu, a po zkompilování v Core ML využije kolem 100 MB paměti.

Autoři upozorňují, že výsledky pocházejí z jednoho stroje a několika sad dat. Na nahrávkách AMI s překrývajícími se řečníky měly všechny testované enginy chybovost nad 23 %. Apple v Speech frameworku nemá rozpoznávání mluvčích, proto balíček přidává SpeakerDiarizer postavený na modelu Streaming Sortformer od NVIDIA. Sleduje až čtyři mluvčí včetně překryvů a umožňuje vypsat přepis po replikách. Verze v2.1 je podle autorů na schůzkách přesnější. Modely převedené do Core ML mají licence CC BY 4.0, NVIDIA Open Model License nebo Apache 2.0. Parakeet zabírá zhruba 600 MB, Qwen3-ASR 0,9 až 2,4 GB.

AnyDecisionModel: pravděpodobnosti místo textu

Druhý balíček vychází z toho, že když jazykový model vyzvete k odpovědi a text rozparsujete, dostanete jedinou odpověď bez pravděpodobností alternativ. AnyDecisionModel proto čte pravděpodobnosti přímo z modelu. U jedné otázky vrací třeba typ Choice s vybranou možností, pravděpodobností každé varianty a mírou jistoty. Backend MLX sestaví prompt s jednotokenovou značkou pro každou odpověď a pravděpodobnosti přečte z jednoho průchodu modelem.

Ukázkou je macOS aplikace Emoji Magnet. Nad hromadou 343 emoji je textové pole a po napsání fráze se odpovídající emoji zvednou. Aplikace nemá žádná klíčová slova, na každé emoji se model ptá otázkou ano/ne. Lokálně běží Qwen3 4B přes MLX, na M4 Max trvá skupina 16 otázek asi 0,45 sekundy a celý průchod všemi 343 emoji zhruba 10 sekund. Přes hostovaný backend Jev se emoji usadí asi za půl sekundy. Backend podporuje i modely Clef od Cloudflare s natrénovanou rozhodovací hlavou. Varianta Clef-Flash má 9B parametrů, ve 4bitové podobě zabere 6,2 GB a karta modelu doporučuje alespoň 16 GB paměti.

Kalibrace a požadavky

Pravděpodobnosti jazykových modelů bývají přehnaně sebevědomé, proto lokální backendy přijímají objekt Calibration s teplotou a posunem pro odpovědi ano/ne. Proti vlivu pořadí možností pomáhá rotationDebiasing, který otázku položí pro každou rotaci možností a výsledky zprůměruje. Míra jistoty je spočítaná z entropie. Ukazuje, jak soustředěné pravděpodobnosti jsou, ne zda je odpověď správná, takže před nastavením prahu je potřeba změřit skutečnou chybovost.

Oba balíčky vyžadují Swift 6.2 a macOS 26 nebo iOS 26. Parakeet, Sortformer i MLX potřebují čip Apple silicon a MLX build navíc Xcode se Swiftem 6.4 a Metal toolchain. Testováno bylo zatím jen na macOS 27, ne na iPhonu. Pro české vývojáře je podstatné, že jde o lokální zpracování, data tedy nemusí opouštět zařízení, a že se přepisy dají vyhodnotit na vlastních souborech příkazem hear evaluate.

Zdroje

ChatGPT · Gemini · Claude

Převod kódu

Mám aplikaci pro macOS ve Swiftu, která používá SpeechAnalyzer z frameworku Speech. Vysvětli krok za krokem, jak ji převést na AnySpeechRecognizer a přepnout engine na [Parakeet nebo Apple]. Zde je můj kód: [vložte kód]

Napište, jakou verzi macOS a Swiftu používáte.

ChatGPT · Gemini · Claude

Výběr modelu

Potřebuji přepisovat [nahrávky schůzek / živý hovor] v jazyce [jazyk]. Porovnej modely Parakeet v3, Parakeet Unified a Qwen3-ASR podle jazyků, rychlosti a vhodnosti pro živý vstup a doporuč jeden.

Jazykovou podporu vždy ověřte v kartě modelu.

ChatGPT · Gemini · Claude

Rozhodovací otázky

Navrhni sadu otázek typu ano/ne a výběru z možností pro třídění [typ textu, např. zákaznické tikety] tak, aby šlo z odpovědí vyčíst pravděpodobnost a míru jistoty. Uveď i příklad výčtu kategorií ve Swiftu.

Před nasazením změřte chybovost na vlastních datech.