Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
⚡️Сбер представил новую систему синтеза речи для ГигаЧата — в одной модели используются сразу несколько разных уникальных голосов под разные задачи
Обновление позволяет генерировать речь в различных манерах — от естественного Freespeech для общения до подкастного формата, интонаций операторов и традиционного дикторского стиля. Звучание стало более органичным и приближенным к человеческому.
Что умеет новый синтез:
- для разных кейсов применения синтеза сделаны отдельные голоса
воспроизводит паузы, смысловые акценты и эмоциональную окраску
- построен на собственной разработке: GigaChat 3b как основа, специализированный токенизатор и адаптер к LLM
- умеет озвучивать тексты бесконечной длины с учетом контекста, а также клонировать голоса
- внутренние замеры демонстрируют прогресс в качестве и натуральности звука
Зачем это нужно:
- помогает создавать более органичные голосовые интерфейсы
- оптимален для разговорных ассистентов, озвучки подкастов или аудиокниг, а также в автоматизированных колл-центрах
Основные преимущества:
- есть возможность выбора голоса, которые подходят под разные задачи
- управление стилистикой и эмоциями на естественном языке
- самый живой синтез речи, ни у Алисы, ни у OpenAI ничего похожего нет
Новый синтез уже доступен в Voice Mode Гигачата.
@ai_machinelearning_big_data
#ai#ml#speech#llm
Vosk Speech Recognition Toolkit
Vosk is an offline open source #speech#recognition toolkit. It enables speech recognition for 20+ languages and dialects - English, Indian English, German, French, Spanish, Portuguese, Chinese, Russian, Turkish, Vietnamese, Italian, Dutch, Catalan, Arabic, Greek, Farsi, Filipino, Ukrainian, Kazakh, Swedish, Japanese, Esperanto, Hindi, Czech. More to come.
Vosk models are small (50 Mb) but provide continuous large vocabulary transcription, zero-latency response with streaming API, reconfigurable vocabulary and speaker identification.
Speech recognition bindings implemented for various programming languages like Python, Java, Node.JS, C#, C++ and others.
Vosk supplies speech recognition for chatbots, smart home appliances, virtual assistants. It can also create subtitles for movies, transcription for lectures and interviews.
Vosk scales from small devices like Raspberry Pi or Android smartphone to big clusters.
https://t.me/speech_recognition
https://alphacephei.com/vosk
https://github.com/alphacep/vosk-api
🇺🇿Biznes va tadbirkorlik oliy maktabi va 🇰🇷KoreyaningAdju universiteti hamkorligida “MBA-IT biznes” yo‘nalishi bo‘yicha 🎓magistratura mutaxassisligi tinglovchilari uchun Adju universiteti xalqaro tadqiqotlar oliy maktabi (GSIS) 👨🏫 dekani Byeong Yun Chang nutq so‘zladi.
Для слушателей совместной 🎓магистерской программы 🇺🇿Высшей школы бизнеса и предпринимательства и 🇰🇷УниверситетаАджу по специальности «MBA-IT biznes» выступил с речью 👨🏫 декан Высшей школы международных исследований (GSIS) университета Аджу Бйонг Юн Чанг.
#GraduateSchool#Masterclass#Speech#Itbusiness
Web-site | Telegram | Facebook |Instagram
An escalator stopped in front of Trump at the UN building 🛑🛗. Trump later devoted almost half of his speech at the UN 🏛🎤 to complaining about this escalator 🤦♂️.
#trump#escalator#speech
👂More on Trump's Ear ⚠️
🚀 Mojtaba Khamenei to Address Recent War Situation Amid Mourning Period
Mojtaba Khamenei is anticipated to deliver a speech regarding the current war situation. According to NS3.AI, the address will coincide with the 40th day of mourning for a deceased high-ranking revolutionary figure, as reported by Tasnim News Agency.
#MojtabaKhamenei#WarSituation#MourningPeriod#TasnimNews#NS3AI#Iran#Speech
WhisperTux
Simple #voice#dictation application for #Linux. Uses whisper.cpp for offline speech-to-text transcription. No fancy GPUs are required although whisper.cpp is capable of using them if available. Once your speech is transcribed, it is sent to a ydotool daemon that will write the text into the focused application.
Features
Local speech-to-text processing via whisper.cpp (no cloud dependencies)
No expensive hardware required (works well on a plain x86 laptop with AVX instructions)
Global keyboard shortcuts for system-wide operation
Automatic text injection into focused applications
Configurable whisper models and shortcuts
https://github.com/cjams/whispertux
#assistant#speech#stt