
Голос в текст, текст в перевод: строим десктопное приложение для распознавания речи с Azure Speech SDK и NAudio
TheMysteriousStranger90 17 минут назад Голос в текст, текст в перевод: строим десктопное приложение для распознавания речи с Azure Speech SDK и NAudio Средний 15 мин 791 .NET * C# * Туториал Из песочницы...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. TheMysteriousStranger90 17 минут назад Голос в текст, текст в перевод: строим десктопное приложение для распознавания речи с Azure Speech SDK и NAudio Средний 15 мин 791 . NET * C# * Туториал Из песочницы Azio-Speech. pngПредисловие: зачем вообще это нужноПредставьте сценарий: вы ведёте встречу на английском с иностранными коллегами, и кто-то хочет получить стенограмму с привязкой к спикерам — и сразу переведённую, к примеру, на итальянский.
Или вы транскрибируете интервью для статьи. Или просто хочется поиграться с Azure Speech Services. Вот именно с этим набором мотивов родился открытый проект AzioSpeech — десктопное Windows-приложение, написанное на C# / .
Технические детали
NET 9, с UI на Avalonia UI, которое умеет:захватывать аудио с микрофона через NAudio;транскрибировать речь в реальном времени через Azure Cognitive Services Speech SDK;определять, кто из говорящих что сказал (speaker diarization);переводить на 9 языков;сохранять результат в . Технологический стек: что взяли и почему. NET 9 + Avalonia 11 + NAudio + ReactiveUI + Microsoft.
Speech Avalonia выбрана вместо WPF или WinUI осознанно: UI-фреймворк сам по себе кросс-платформенный и прекрасно работает под Linux и macOS, но приложение намеренно нацелено только на Windows. Причина проста — захват звука реализован через NAudio с использованием WinMM API, которое существует исключительно в Windows. NAudio — пожалуй, самая зрелая аудиобиблиотека в экосистеме .
Используется для захвата сырого PCM-потока с микрофона через класс WaveInEvent, который работает поверх Windows Multimedia API (WinMM). Это нативный Windows-механизм — только waveInOpen под капотом. Именно использование WaveInEvent с его WinMM-бэкендом и делает всё приложение строго Win-only, несмотря на Avalonia в стеке.
Отраслевые последствия
ReactiveUI — реактивный MVVM-фреймворк. В связке с ReactiveUI. Fody позволяет избавиться от ручного INotifyPropertyChanged.
Достаточно поставить атрибут над свойством — Fody после компиляции модифицирует IL-код сборки, вставляя всю обвязку автоматически:// TranscriptionViewModel. cs — свойства ViewModel без единой строки INotifyPropertyChanged public string = string. Empty; public string = string.
Empty; public bool public bool public string = "Ready to record"; Это выглядит как магия: в скомпилированной сборке Fody уже расставил весь OnPropertyChanged-паттерн, а в исходниках остаётся чистый декларативный код. На этих свойствах затем строится вся реактивная логика через WhenAnyValue — подробнее в разделе про ReactiveUI ниже. Прежде чем писать код: получаем ключи Azure Speech ServiceВсё приложение вращается вокруг двух строк — ключа и региона Azure Speech Service.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





