Welcome to my personal place for love, peace and happiness 🤖

Later Ctrl + ↑

Транскрибация аудио python на faster-whisper

Все достаточно легко

Подготовка

python3 -m venv ./whisper

Активация и установка этого https://github.com/SYSTRAN/faster-whisper

source ./whisper/bin/activate
pip install faster-whisper

Сам код

import sys
import os
import time
from faster_whisper import WhisperModel

# --- Конфигурация модели Whisper ---
model_size = "large-v3"
# Выберите свою конфигурацию:
# model = WhisperModel(model_size, device="cuda", compute_type="float16") # Если есть GPU и CUDA
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16") # Если есть GPU и CUDA с INT8
model = WhisperModel(model_size, device="cpu", compute_type="int8") # Для CPU (как в вашем примере)
# -----------------------------------

def transcribe_mp3_to_text(mp3_filepath):
    """
    Транскрибирует MP3 файл и сохраняет результат в текстовый файл.
    """
    if not os.path.exists(mp3_filepath):
        print(f"Ошибка: Файл MP3 не найден: {mp3_filepath}")
        return False

    if not mp3_filepath.lower().endswith(".mp3"):
        print(f"Ошибка: Файл '{mp3_filepath}' не является MP3 файлом. Пропускаем.")
        return False

    # Извлечение имени файла без расширения
    filename_without_ext = os.path.splitext(os.path.basename(mp3_filepath))[0]
    output_txt_filepath = os.path.join(os.path.dirname(mp3_filepath), f"{filename_without_ext}.txt")

    print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] Начинаем транскрипцию '{mp3_filepath}'...")
    print(f"Результат будет сохранен в '{output_txt_filepath}'")

    try:
        segments, info = model.transcribe(mp3_filepath, beam_size=5)

        detected_language_msg = f"Detected language: '{info.language}' with probability {info.language_probability:.2f}"
        print(detected_language_msg)

        # Сохранение транскрипции в текстовый файл
        with open(output_txt_filepath, 'w', encoding='utf-8') as f_out:
            f_out.write(f"--- Транскрипция для: {os.path.basename(mp3_filepath)} ---\n")
            f_out.write(f"{detected_language_msg}\n\n")
            
            full_text = [] # Для сбора всего текста, если нужно вывести в конце

            for segment in segments:
                segment_line = f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}"
                print(segment_line) # Выводим в консоль для отладки
                f_out.write(f"{segment.text}\n") # Записываем только текст в файл, по сегментам
                full_text.append(segment.text)

            # Если вы хотите сохранить всю транскрипцию одним блоком в конце файла или отдельный файл
            # f_out.write("\n\n--- Полный текст ---\n")
            # f_out.write(" ".join(full_text))

        print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] Транскрипция успешно завершена! Результат в '{output_txt_filepath}'")
        return True

    except Exception as e:
        print(f"Ошибка при транскрипции файла '{mp3_filepath}': {e}")
        # Вы можете добавить логирование ошибки в отдельный файл, если нужно
        return False

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Использование: python process_mp3.py <путь/к/вашему/файлу.mp3>")
        sys.exit(1)

    mp3_file_path_arg = sys.argv[1] # Это будет полный путь к MP3 файлу, переданный из Automator/Bash
    transcribe_mp3_to_text(mp3_file_path_arg)

Итоги запуска

(whisper) (base) yuriygavrilov@MacBookPro fastwhisper % python whisp.py            
Detected language 'ru' with probability 0.998883
[0.00s -> 4.96s]  Раз, два, три, привет, как дела?
[5.94s -> 8.54s]  Все хорошо, а у тебя как?
[9.54s -> 10.78s]  И у меня все хорошо
[10.78s -> 12.98s]  Спасибо, пока
(whisper) (base) yuriygavrilov@MacBookPro fastwhisper %

тестовый файл тут

ограничений по времени нет, кормите его любыми файлами любой длины. Если нужно можно упростить запуск как хотите. На мак можно даже поставить действие на папку и при появлении там файлов типа mp3 они будут автоматически транскрибироваться.

Буду делать через приложении на маке automator

Как то примерно так :)

осталось прикрутить это а действие к папке

кажись заработало :)

Создалась транскрипция сама

получилось в итоге вот так: Открываем Automator, настраиваем действие и все.

работает так: кидаем файл в папку тест, скрипт запускается, транскрипция появляется рядом. Все.

Проверим качество модели на этом:

почти идеал 🤘

Второй раз чуть иначе, но почти точно.

Тестируем Suno 4.5 🎸🤘

В целом нейронка показывает себя достойно, почти как 4.0 но чуть качественнее и может создавать треки по 8 минут. 4 могла только до 4 минут.

Пара экспериментов

Жрецы данных :) 🤣🤘🎸

А вот по заказу в стиле кровостока 🤣 от Александра Баракова, но пожалуй надо текст переписать

Другой текст 🙉

Это то как нейронка понимает dmbok и предлагает исполнение, от себя я не добавлял ничего. Но был интересный опыт в первом промте я попросил нейронку дать рекомендации, не только для меня но и для другой нейронки. ( deepseek был первый, вторая flash 2.5 preview )

Маленькие правки некоторых выражений все же были, но наверное только ради хорошего звучания на русском и что бы не коробило слух.

Анна Ахматова

Ремикс на песню apologies onerepublic

Кстати нейронка теперь лучше защищает авторские права, ее нельзя попросить спой как Киркоров, идет проверка по названиям треков и исполнителям. Но можно другую нейронку попросить переделать песню. Вот как например эта:

Этот трек переписала другая нейронка, но с сохранением смысла. Использовала Flash 2.5 preview.

4.5 сейчас платная, стоит 10 $ в месяц
Еще в бесплатных версиях они начали портить чуть треки, что ты купил их.

С первого раза не получается хорошо, очень редко, обычно 10-15 раз надо сгенерировать снова и поправить слова или написать английские слова на русском, что бы нейронка понимала как произнести.

В версии 4.5 появился функционал генерации кусочков, то есть если песня вам нравится, а только некоторые слова или окончание надо поправить, то это можно сделать. Заменить можно примерно любые 6 секунд.

Немного профильных треков:

Для сравнение этот трек сделан на версии 4.0:

А тут немного личного :) такое нейронка пишет на после анализа чатов, ну почти 🙈🥹

Все тексты делал тут: http://openrouter.ai в основном Gemini Flash 2.5 либо DeepSeek R1

Немного юмора, мемов и Data :)

Для начала поиграем в CDO, проверяем навыки и зарабатываем все деньги мира 😁

Игра тут: https://www.whoisthebestcdo.com

Who’s the best CDO? 🔊 ( не забываем включать звук для мотивации 🤘 )

You’re the newly appointed Chief Data Officer. Your role is to guide your company through data chaos, one paw-step at a time. Expect surprises in your inbox and remember : data is your territory now.

Как думаете стоит сделать перевод на русский? 🧐

Теперь расслабляемся и смотрим просто :) 📺

Data Corp – Первая серия

Интервью с победителем в игре :)

Анализ книги – построение эволюционных архитектур

Полная версия тут

Краткое содержание

Книга “Построение эволюционных архитектур” Нила Форда, Ребекки Парсонс и Патрика Куа рассматривает подход к разработке программных систем, которые легко адаптируются к изменениям и новым требованиям. Книга подчеркивает важность постепенных изменений, объективных критериев оценки архитектуры (fitness-функций) и разумной связанности между компонентами. Авторы подробно описывают принципы, практики и антипаттерны эволюционного подхода, чтобы помочь читателям создавать гибкие и устойчивые системы.

Основные тезисы и выводы

  • Эволюционная архитектура – это не просто методология, это философия:** Подход к построению систем, которые “учатся” и адаптируются к изменениям, в отличие от жёстких, заранее спланированных архитектур.
  • Изменения неизбежны и к ним надо готовиться:** Современный мир разработки требует гибкости. Эволюционные архитектуры призваны облегчить внесение изменений, а не предотвращать их.
  • Fitness-функции – это компас для эволюции:** Объективные критерии оценки архитектуры, которые помогают защитить важные её характеристики в процессе изменений (производительность, безопасность, масштабируемость и т.д.).
  • Постепенность и малые изменения – основа успеха:** Небольшие инкрементальные изменения легче контролировать, тестировать и развертывать, чем крупные реструктуризации. Большие изменения происходят из маленьких шагов.
  • Связанность должна быть разумной и осознанной:** Чрезмерная связанность (coupling) затрудняет изменения. Необходимо стремиться к минимальной связанности, необходимой для решения бизнес-задач и функциональной целостности. Разумная связанность должна обеспечивать масштабируемость и надежность.
  • Команда и культура важны не меньше, чем технологии:** Успешное внедрение эволюционной архитектуры требует кросс-функциональной команды с культурой экспериментов и автоматизации (DevOps).
  • Инструменты и автоматизация – основа практики:** Автоматизированные процессы и конвейеры развертывания (deployment pipelines) позволяют быстро и надежно вносить изменения и оценивать их влияние на архитектуру. Автоматизация позволяет снизить цену изменений.

Заключение

Книга “Построение эволюционных архитектур” предоставляет ценную методологию для разработки программных систем, способных адаптироваться к постоянным изменениям. Книга будет полезной для архитекторов, разработчиков и руководителей, стремящихся создавать гибкие, устойчивые и конкурентоспособные решения. Эта книга – практическое руководство по эволюции программного обеспечения, а не попытка навязать еще один “серебряный шар”.

Рекомендации

  1. Начните с анализа текущей архитектуры: Определите узкие места, критические зависимости и области, требующие большей гибкости.
  2. Определите ключевые fitness-функции: Какие характеристики архитектуры наиболее важны для бизнеса? Установите объективные критерии их оценки.
  3. Постепенно внедряйте конвейеры развертывания (deployment pipelines): Автоматизируйте процессы сборки, тестирования и развертывания небольших изменений.
  4. Поддерживайте культуру экспериментов: Поощряйте небольшие, контролируемые эксперименты с новыми технологиями и подходами.
  5. Используйте потребительски ориентированные контакты: Отслеживайте требования потребителей и используйте feedback для постоянного совершенствования архитектуры.
  6. Создавайте небольшую, но эффективную команду: Кросс-функциональная команда с необходимыми навыками будет залогом успешной эволюции архитектуры.
  7. Учитывайте организационные факторы: Адаптируйте структуру команды, процессы бюджетирования и управления изменениями, чтобы поддерживать эволюционный подход.
  8. Применяйте на практике теорию Эрика Эванса в книге “Домен управляемый дизайн”: Эффективные архитектурные решения будут приниматься с учетом предметной области.

План действий согласно книге

  1. Оценка текущей ситуации:
    • Анализ архитектуры: Определение проблемных мест, связей, которые необходимо уменьшить.
    • Оценка зрелости команды: Анализ навыков, процессов и культуры разработки.
  2. Определение целей и стратегии:
    • Определение ключевых бизнес-целей: Что должна обеспечивать архитектура? Чего ожидает бизнес? Какова ключевая ценность?
    • Выбор стиля архитектуры: Учитывая ограничения и требования, выбрать подходящий стиль архитектуры (микросервисы, SOA, монолит с модульной структурой и т.д.).
  3. Внедрение изменений:
    • Разработка fitness-функций: Для защиты архитектуры с новыми возможностями.
    • Постепенные изменения с использованием deployment pipelines: Автоматизация процессов сборки, тестирование, изменение
    • Создание Cross-функциональной команды: Поместите все необходимые ресурсы в команду, чтобы уменьшить препятствия.
  4. Непрерывное совершенствование:
    • Анализ метрик и feedback: Постоянный сбор информации о работе системы и ее воздействии на бизнес.
    • Регулярный пересмотр архитектуры и fitness-функций: Адаптация к изменяющимся требованиям и технологиям.

Практическое руководство построения Агентов ИИ

Инструкция оригинал тут

Потом еще свой код покажу, но он работает в версии 1.65, надо бы обновить.

Документ представляет собой руководство по разработке автономных систем (агентов) на базе языковых моделей (LLM). Основные темы:

Определение агентов: системы, выполняющие задачи от имени пользователя с высокой степенью автономии.
Ключевые компоненты: модели LLM, инструменты (API, функции), инструкции, защитные механизмы (guardrails).
Оркестрация: подходы к управлению агентами (одиночные и мультиагентные системы).
Guardrails: механизмы безопасности для контроля рисков.
Практические рекомендации: выбор моделей, проектирование инструментов, обработка исключений, интеграция с людьми.

Ниже не полный перевод. Раздел Guardrails очень интересный!


Практическое руководство по созданию агентов

Автор: OpenAI

---

Содержание
  1. Введение
  2. Что такое агент?
  3. Когда следует создавать агента?
  4. Основы проектирования агентов
  5. Выбор моделей
  6. Определение инструментов
  7. Конфигурация инструкций
  8. Оркестрация
    • 8.1. Системы с одним агентом
    • 8.2. Мультиагентные системы
  9. Защитные механизмы (Guardrails)
  10. Заключение

---

1. Введение

Крупные языковые модели (LLM) становятся всё более способными решать сложные многошаговые задачи. Достижения в области логических рассуждений, мультимодальности и использования инструментов открыли новую категорию систем на базе LLM — агентов.

Это руководство предназначено для продуктовых и инженерных команд, изучающих создание своих первых агентов. В нём собраны практические рекомендации, основанные на опыте внедрения агентов в различных проектах.

После прочтения вы узнаете:

  • Как выбирать подходящие сценарии использования.
  • Как проектировать логику агентов и управлять их взаимодействием.
  • Как обеспечивать безопасность и предсказуемость работы.

---

2. Что такое агент?

Агенты — системы, которые самостоятельно выполняют задачи от имени пользователя.

Ключевые характеристики:
  1. Использование LLM
    • Управление рабочими процессами.
    • Корректировка действий при ошибках.
  2. Доступ к инструментам
    • Взаимодействие с API, базами данных, внешними системами.

Примеры задач:

  • Обработка запросов в службе поддержки.
  • Бронирование ресторана.
  • Генерация отчётов.

Не являются агентами:

  • Простые чат-боты.
  • Системы без управления рабочими процессами.

---

3. Когда следует создавать агента?

Агенты подходят для задач, где традиционные правила и детерминированные системы неэффективны.

Сценарии для внедрения:
Категория Примеры задач
Сложные решения Одобрение возврата средств.
Сложные правила Проверка безопасности поставщиков.
Неструктурированные данные Анализ страховых случаев.

Перед созданием агента:

  • Убедитесь, что задача требует неоднозначных решений.
  • Если задача простая, используйте детерминированные методы.

---

4. Основы проектирования агентов

Агент состоит из трёх компонентов:

Компонент Описание
Модель LLM для логики и принятия решений.
Инструменты API, базы данных, внешние системы.
Инструкции Правила и ограничения поведения.

Пример кода (Agents SDK):

weather_agent = Agent(  
    name="Weather agent",  
    instructions="Вы помощник, который отвечает на вопросы о погоде.",  
    tools=[get_weather],  
)

---

5. Выбор моделей

Рекомендации:

  1. Начните с самой мощной модели для базового уровня производительности.
  2. Заменяйте её на более лёгкие модели, где это возможно.

Примеры задач:

  • Простые запросы → Маленькие модели (например, `gpt-3.5`).
  • Сложные решения → Мощные модели (например, `gpt-4`).

---

6. Определение инструментов

Инструменты расширяют возможности агентов через API.

Типы инструментов:
Тип Примеры
Данные Запросы к CRM, чтение PDF.
Действия Отправка email, обновление CRM.
Оркестрация Агент возвратов, исследовательский агент.

Пример кода:

search_agent = Agent(  
    name="Search agent",  
    instructions="Помогите пользователю искать в интернете.",  
    tools=[WebSearchTool(), save_results],  
)

---

7. Конфигурация инструкций

Рекомендации:

  • Используйте существующие документы (например, инструкции службы поддержки).
  • Разбивайте задачи на шаги.
  • Определяйте чёткие действия для каждого шага.
  • Учитывайте крайние случаи.

Пример генерации инструкций:

prompt = """  
Вы эксперт по созданию инструкций для агентов.  
Преобразуйте документ в нумерованный список без неоднозначностей.  
Документ: {{help_center_doc}}  
"""

---

8. Оркестрация

8.1. Системы с одним агентом
  • Один агент управляет всеми задачами.
  • Простота внедрения и обслуживания.

Пример работы:

await Runner.run(agent, [UserMessage("Столица США?")])
8.2. Мультиагентные системы
  • Менеджер-агент координирует специализированных агентов.
  • Децентрализованные агенты передают задачи друг другу.

Пример менеджер-агента:

manager_agent = Agent(  
    name="Менеджер переводов",  
    tools=[spanish_agent, french_agent],  
)

---

9. Защитные механизмы (Guardrails)

Цель: Предотвращение рисков (утечки данных, вредоносные запросы).

Типы защит:
  • Классификатор релевантности → Фильтрация не относящихся к делу запросов.
  • Фильтр PII → Защита персональных данных.
  • Модерация → Блокировка вредоносного контента.

Пример кода:

@input_guardrail  
async def churn_detection(ctx, input):  
    # Проверка риска оттока клиентов  
    ...

---

10. Заключение

Ключевые принципы:

  • Начинайте с простых агентов.
  • Используйте защитные механизмы.
  • Планируйте вмешательство человека для критических задач.

Агенты открывают новые возможности для автоматизации сложных рабочих процессов.

OpenAI — компания, занимающаяся разработкой ИИ. Наша миссия — обеспечить, чтобы искусственный интеллект приносил пользу человечеству.

Свежее по классификации подвезли – mistral

🔥 Classifier Factory от Mistral

Classifier Factory — это интуитивно понятное руководство для создания и обучения собственных моделей классификации на базе компактных LLM от Mistral AI.

С его помощью — как через веб‑интерфейс La Plateforme, так и через API — можно быстро разворачивать решения для модерации контента, детекции намерений, анализа тональности, кластеризации данных, обнаружения мошенничества, фильтрации спама, рекомендательных систем и других задач

Таким образом, Classifier Factory упрощает весь цикл работы с custom‑классификаторами: от подготовки данных до развёртывания готовой модели в продакшене.

Еще они обнвоили доку.

🔜 Docs
🔜Cookbook: Moderation Classifier
🔜Cookbook: Intent Classification
🔜Cookbook: Classification of Food

@ai_machinelearning_big_data

#Mistral #api

Как навести порядок в хаосе данных: стратегия для бизнеса

Любопытная статья про порядок и знания. Раньше к этому стремились большие компании, может даже инвестиционные, а сегодня это под силу даже мелким.

Основное это RAG, втаскивание смысловых значение и аккумулирование всего в виде FAQ.

https://telegra.ph/Kak-navesti-poryadok-v-haose-dannyh-strategiya-dlya-biznesa-03-31

Earlier Ctrl + ↓