Реалізація автоматичного транскрибування Zoom/Google Meet/Teams

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація автоматичного транскрибування Zoom/Google Meet/Teams
Середній
від 1 тижня до 3 місяців
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Реалізація автоматичного транскрибування Zoom/Google Meet/Teams Автотранскрибація відеоконференцій — популярний корпоративний кейс: із запису наради автоматично створюється структурований протокол з атрибуцією реплік учасникам та списком завдань. ### Підходи до отримання аудіо Варіант 1: Завантаження запису — простіше, із затримкою:```python

Zoom API для скачивания записей

import requests

def download_zoom_recording(meeting_id: str, token: str) -> bytes: recordings = requests.get( f"https://api.zoom.us/v2/meetings/{meeting_id}/recordings", headers={"Authorization": f"Bearer {token}"} ).json()

audio_file = next(
    f for f in recordings["recording_files"]
    if f["file_type"] == "M4A"  # только аудио
)
return requests.get(audio_file["download_url"]).content

**Варіант 2: Zoom Webhooks** - автозапуск після закінчення зустрічі:python @app.post("/zoom/webhook") async def zoom_webhook(request: Request): data = await request.json() if data["event"] == "recording.completed": meeting_id = data["payload"]["object"]["id"] asyncio.create_task(process_meeting_recording(meeting_id)) **Варіант 3: Zoom Apps/Teams Bot** — вбудований у платформу транскриптор. ### Транскрибація з діаризацієюpython async def transcribe_meeting(audio_path: str, participants: list[str] = None) -> dict: transcriber = CallTranscriber() result = await transcriber.transcribe_call(audio_path)

# Генерируем протокол
protocol = await generate_meeting_protocol(result, participants)
return protocol

async def generate_meeting_protocol(transcript: dict, participants: list) -> dict: """Генерируем структурированный протокол через LLM""" full_text = "\n".join( f"{turn['speaker']}: {turn['text']}" for turn in transcript["turns"] )

response = await client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "system",
        "content": "Создай протокол совещания с разделами: Повестка, Ключевые решения, Задачи (с ответственными и сроками), Следующая встреча."
    }, {"role": "user", "content": full_text}]
)
return {
    "summary": response.choices[0].message.content,
    "transcript": transcript,
    "participants": participants,
    "duration": transcript["duration"]
}

### Microsoft Teams через Graph APIpython

Скачивание записи Teams через Microsoft Graph

def get_teams_recording(meeting_id: str, token: str) -> bytes: recordings = requests.get( f"https://graph.microsoft.com/v1.0/me/onlineMeetings/{meeting_id}/recordings", headers={"Authorization": f"Bearer {token}"} ).json() # Скачиваем content_url