Учебник по OpenAI Whisper: полное руководство по преобразованию речи в текст

Учебник по OpenAI Whisper: полное руководство по преобразованию речи в текст

Eric King

Eric King

Author


Учебник по OpenAI Whisper: полное руководство по преобразованию речи в текст

OpenAI Whisper — это открытая модель автоматического распознавания речи (ASR), предназначенная для транскрипции речи в текст и перевода речи. Она поддерживает множество языков, хорошо справляется с акцентами и фоновым шумом и широко используется для подкастов, встреч, интервью и субтитров к видео.
В этом подробном руководстве вы пройдёте всё необходимое для работы с Whisper — от установки до продвинутого использования.

Что такое OpenAI Whisper?

Whisper обучен на 680 000 часах многоязычных аудиоданных, поэтому особенно хорошо работает с реальными, неидеальными записями. Это одна из самых точных открытых моделей распознавания речи.

Ключевые возможности

  • Многоязычность — более 99 языков
  • Речь в текст — преобразование аудио в текст
  • Перевод речи — прямой перевод речи на английский
  • Определение языка — автоматическое определение языка речи
  • Временные метки — на уровне слов и сегментов
  • Открытый код и бесплатность — лицензия MIT, без платы за API
  • Работа офлайн — локально на вашем компьютере
  • Множество форматов — различные аудио- и видеоформаты

Размеры моделей Whisper

Whisper предлагает несколько размеров моделей для баланса скорости и точности:
МодельПараметрыСкоростьТочностьПамятьСценарий использования
tiny39M⭐⭐⭐⭐⭐⭐⭐~1 ГББыстрые тесты, демо
base74M⭐⭐⭐⭐⭐⭐⭐~1 ГБПростое аудио, быстрые задачи
small244M⭐⭐⭐⭐⭐⭐⭐~2 ГБУниверсальное использование, баланс
medium769M⭐⭐⭐⭐⭐⭐⭐~5 ГБШумное аудио, высокая точность
large1550M⭐⭐⭐⭐⭐⭐~10 ГБМаксимальная точность, продакшен
Рекомендации:
  • Для скорости: tiny или base
  • Для баланса: small или medium
  • Для точности: large или large-v3
  • Для продакшена: чаще всего medium или large-v2

Требования

Перед использованием Whisper убедитесь, что у вас есть:
  • Python 3.8 или новее (рекомендуется Python 3.9+)
  • менеджер пакетов pip
  • установленный FFmpeg (для обработки аудио и видео)
  • (необязательно) NVIDIA GPU с CUDA для ускорения
  • (необязательно) от 4 ГБ ОЗУ для базовой модели, от 10 ГБ для большой

Шаг 1: Установка

Установка Whisper

Установите пакет OpenAI Whisper через pip:
pip install openai-whisper
Или конкретную версию:
pip install openai-whisper==20231117

Установка FFmpeg

FFmpeg необходим для декодирования аудио- и видеофайлов.
macOS (через Homebrew):
brew install ffmpeg
Ubuntu / Debian:
sudo apt update
sudo apt install ffmpeg
Windows:
  1. Скачайте FFmpeg с ffmpeg.org
  2. Распакуйте и добавьте в PATH системы
  3. Или: choco install ffmpeg (с Chocolatey)
Проверка установки:
ffmpeg -version
whisper --version

Шаг 2: Базовое использование — Python

Простая транскрипция

Самый простой способ расшифровать аудио:
import whisper

# Load model (downloads automatically on first use)
model = whisper.load_model("base")

# Transcribe audio file
result = model.transcribe("audio.mp3")

# Print transcription
print(result["text"])
Вывод:
Hello everyone, welcome to today's meeting. We will discuss the project timeline and upcoming milestones.

Полный пример с обработкой ошибок

import whisper
import os

def transcribe_audio(audio_path, model_size="base"):
    """
    Transcribe an audio file using Whisper.
    
    Args:
        audio_path (str): Path to the audio file
        model_size (str): Whisper model size (tiny, base, small, medium, large)
    
    Returns:
        dict: Transcription result with text and segments
    """
    try:
        # Check if audio file exists
        if not os.path.exists(audio_path):
            raise FileNotFoundError(f"Audio file not found: {audio_path}")
        
        # Load the Whisper model
        print(f"Loading Whisper model: {model_size}")
        model = whisper.load_model(model_size)
        
        # Transcribe the audio
        print(f"Transcribing: {audio_path}")
        result = model.transcribe(audio_path)
        
        print(f"✓ Transcription complete!")
        print(f"  Language: {result['language']}")
        print(f"  Duration: {result['segments'][-1]['end']:.2f}s")
        
        return result
    
    except Exception as e:
        print(f"Error during transcription: {str(e)}")
        return None

# Example usage
if __name__ == "__main__":
    audio_file = "meeting.mp3"
    result = transcribe_audio(audio_file, model_size="base")
    
    if result:
        print("\n" + "="*50)
        print("TRANSCRIPTION:")
        print("="*50)
        print(result["text"])

Шаг 3: Определение и указание языка

Автоопределение языка

Whisper автоматически определяет язык:
import whisper

model = whisper.load_model("base")
result = model.transcribe("audio.mp3")

print(f"Detected language: {result['language']}")
print(f"Language probability: {result.get('language_probability', 0):.2%}")
print(f"\nTranscription:\n{result['text']}")

Указание языка (быстрее и точнее)

Если язык известен, его явное указание ускоряет работу и повышает точность:
import whisper

model = whisper.load_model("base")

# Specify language
result_en = model.transcribe("audio.mp3", language="en")  # English
result_zh = model.transcribe("audio.mp3", language="zh")   # Chinese
result_es = model.transcribe("audio.mp3", language="es")  # Spanish
result_fr = model.transcribe("audio.mp3", language="fr")  # French
result_de = model.transcribe("audio.mp3", language="de")  # German
result_ja = model.transcribe("audio.mp3", language="ja")   # Japanese

print(result_en["text"])
Поддерживаемые языки: Whisper поддерживает более 99 языков. Распространённые коды:
  • en — английский
  • zh — китайский
  • es — испанский
  • fr — французский
  • de — немецкий
  • ja — японский
  • ko — корейский
  • pt — португальский
  • ru — русский
  • it — итальянский

Шаг 4: Временные метки и сегменты

Доступ к сегментам с метками времени

import whisper

model = whisper.load_model("base")
result = model.transcribe("audio.mp3")

# Print full transcription
print("Full Text:")
print(result["text"])

# Print segments with timestamps
print("\n" + "="*50)
print("Segments with Timestamps:")
print("="*50)

for segment in result["segments"]:
    start = segment["start"]
    end = segment["end"]
    text = segment["text"].strip()
    print(f"[{start:6.2f}s - {end:6.2f}s] {text}")
Вывод:
Full Text:
Hello everyone, welcome to today's meeting. We will discuss the project timeline.

==================================================
Segments with Timestamps:
==================================================
[  0.00s -   5.20s] Hello everyone, welcome to today's meeting.
[  5.20s -  12.50s] We will discuss the project timeline.

Форматирование меток как таймкод

def format_timestamp(seconds):
    """Format seconds to HH:MM:SS."""
    hours = int(seconds // 3600)
    minutes = int((seconds % 3600) // 60)
    secs = int(seconds % 60)
    return f"{hours:02d}:{minutes:02d}:{secs:02d}"

for segment in result["segments"]:
    start_time = format_timestamp(segment["start"])
    end_time = format_timestamp(segment["end"])
    print(f"[{start_time} - {end_time}] {segment['text']}")

Метки на уровне слов

Включите метки времени для каждого слова:
import whisper

model = whisper.load_model("base")

result = model.transcribe(
    "audio.mp3",
    word_timestamps=True  # Enable word-level timestamps
)

for segment in result["segments"]:
    print(f"\n[{segment['start']:.2f}s - {segment['end']:.2f}s]")
    print(f"Text: {segment['text']}")
    
    # Word-level timestamps
    if "words" in segment:
        print("Words:")
        for word in segment["words"]:
            print(f"  {word['word']} [{word['start']:.2f}s - {word['end']:.2f}s]")

Шаг 5: Перевод речи

Whisper может переводить речь не на английском прямо на английский:
import whisper

model = whisper.load_model("base")

# Translate to English (regardless of source language)
result = model.transcribe("spanish_audio.mp3", task="translate")

print("Translated to English:")
print(result["text"])

# Original transcription (in original language)
result_original = model.transcribe("spanish_audio.mp3", task="transcribe")
print("\nOriginal language transcription:")
print(result_original["text"])
Примеры применения:
  • Международные встречи
  • Обработка многоязычного контента
  • Локализация контента
  • Учебные материалы по языкам

Шаг 6: Расширенные параметры

Температура и размер луча (beam size)

Управление качеством и скоростью транскрипции:
import whisper

model = whisper.load_model("base")

result = model.transcribe(
    "audio.mp3",
    temperature=0.0,        # Lower = more deterministic (0.0 recommended)
    beam_size=5,            # Higher = more accurate but slower (default: 5)
    best_of=5,              # Number of candidates to consider
    patience=1.0,           # Beam search patience
    condition_on_previous_text=True,  # Use context from previous segments
    initial_prompt="This is a technical meeting about AI and machine learning."  # Context prompt
)

Значения температуры

  • temperature=0.0 — максимально детерминированно, рекомендуется
  • temperature=0.2-0.4 — немного больше вариативности
  • temperature=1.0 — более «творческо», ниже точность

Начальный промпт для контекста

Контекст повышает точность:
result = model.transcribe(
    "technical_meeting.mp3",
    initial_prompt="This meeting discusses API endpoints, microservices, Kubernetes, and CI/CD pipelines."
)

result = model.transcribe(
    "medical_audio.mp3",
    initial_prompt="This is a medical consultation discussing patient symptoms and treatment options."
)

Шаг 7: Интерфейс командной строки (CLI)

У Whisper мощный интерфейс командной строки:

Базовое использование CLI

whisper audio.mp3

Указание модели

whisper audio.mp3 --model small
whisper audio.mp3 --model medium
whisper audio.mp3 --model large-v2

Указание языка

whisper audio.mp3 --language en
whisper audio.mp3 --language zh

Форматы вывода

# SRT subtitles
whisper audio.mp3 --output_format srt

# VTT subtitles
whisper audio.mp3 --output_format vtt

# Text file
whisper audio.mp3 --output_format txt

# JSON (with all metadata)
whisper audio.mp3 --output_format json

# TSV (tab-separated values)
whisper audio.mp3 --output_format tsv

Дополнительные опции CLI

# Full example with all options
whisper audio.mp3 \
  --model medium \
  --language en \
  --task transcribe \
  --output_format srt \
  --output_dir ./transcripts \
  --verbose True \
  --temperature 0.0 \
  --beam_size 5 \
  --best_of 5 \
  --fp16 True

Справка по опциям CLI

ОпцияОписаниеПо умолчанию
--modelРазмер модели (tiny, base, small, medium, large)base
--languageКод языка (en, zh, es и т. д.)Автоопределение
--tasktranscribe или translatetranscribe
--output_formatФормат вывода (txt, srt, vtt, json, tsv)txt
--output_dirКаталог выводаТекущий каталог
--temperatureТемпература при сэмплировании0.0
--beam_sizeРазмер луча при поиске5
--best_ofЧисло кандидатов5
--fp16Точность FP16 (GPU)True
--verboseПодробный выводFalse

Шаг 8: Поддерживаемые аудио- и видеоформаты

Whisper поддерживает распространённые форматы через FFmpeg:

Поддерживаемые форматы

  • Аудио: MP3, WAV, M4A, FLAC, OGG, AAC, WMA
  • Видео: MP4, AVI, MKV, MOV, WebM, FLV
  • Потоки: можно обрабатывать аудиопотоки

Примеры форматов

import whisper

model = whisper.load_model("base")

# Audio formats
model.transcribe("audio.mp3")
model.transcribe("audio.wav")
model.transcribe("audio.m4a")
model.transcribe("audio.flac")

# Video formats (extracts audio automatically)
model.transcribe("video.mp4")
model.transcribe("video.mkv")
model.transcribe("video.webm")

Шаг 9: Полный пример для продакшена

Ниже готовый к продакшену пример:
import whisper
import json
from pathlib import Path
from datetime import datetime

class WhisperTranscriber:
    """Production-ready Whisper transcription service."""
    
    def __init__(self, model_size="base"):
        """Initialize transcriber with specified model."""
        print(f"Loading Whisper model: {model_size}")
        self.model = whisper.load_model(model_size)
        print("✓ Model loaded successfully")
    
    def transcribe_file(self, audio_path, output_dir="transcripts", **kwargs):
        """
        Transcribe audio file and save results.
        
        Args:
            audio_path: Path to audio file
            output_dir: Directory to save outputs
            **kwargs: Additional transcribe parameters
        """
        audio_path = Path(audio_path)
        if not audio_path.exists():
            raise FileNotFoundError(f"Audio file not found: {audio_path}")
        
        output_path = Path(output_dir)
        output_path.mkdir(exist_ok=True)
        
        print(f"\nTranscribing: {audio_path.name}")
        
        # Transcribe
        result = self.model.transcribe(
            str(audio_path),
            word_timestamps=True,
            **kwargs
        )
        
        # Prepare output data
        output_data = {
            "file": str(audio_path),
            "transcribed_at": datetime.now().isoformat(),
            "language": result["language"],
            "language_probability": result.get("language_probability", 0),
            "duration": result["segments"][-1]["end"] if result["segments"] else 0,
            "text": result["text"],
            "segments": result["segments"]
        }
        
        # Save outputs
        base_name = audio_path.stem
        
        # Save as text
        text_file = output_path / f"{base_name}.txt"
        with open(text_file, "w", encoding="utf-8") as f:
            f.write(result["text"])
        
        # Save as JSON
        json_file = output_path / f"{base_name}.json"
        with open(json_file, "w", encoding="utf-8") as f:
            json.dump(output_data, f, indent=2, ensure_ascii=False)
        
        # Save as SRT
        srt_file = output_path / f"{base_name}.srt"
        self._save_srt(result["segments"], srt_file)
        
        print(f"✓ Transcription saved:")
        print(f"  - Text: {text_file}")
        print(f"  - JSON: {json_file}")
        print(f"  - SRT: {srt_file}")
        
        return output_data
    
    def _save_srt(self, segments, output_path):
        """Save segments as SRT subtitle file."""
        with open(output_path, "w", encoding="utf-8") as f:
            for i, segment in enumerate(segments, start=1):
                start = self._format_srt_time(segment["start"])
                end = self._format_srt_time(segment["end"])
                text = segment["text"].strip()
                f.write(f"{i}\n{start} --> {end}\n{text}\n\n")
    
    def _format_srt_time(self, seconds):
        """Format seconds to SRT timestamp."""
        hours = int(seconds // 3600)
        minutes = int((seconds % 3600) // 60)
        secs = int(seconds % 60)
        millis = int((seconds % 1) * 1000)
        return f"{hours:02d}:{minutes:02d}:{secs:02d},{millis:03d}"

# Usage
if __name__ == "__main__":
    transcriber = WhisperTranscriber(model_size="base")
    
    result = transcriber.transcribe_file(
        "meeting.mp3",
        output_dir="transcripts",
        language="en",
        temperature=0.0
    )
    
    print(f"\nLanguage: {result['language']}")
    print(f"Duration: {result['duration']:.2f}s")
    print(f"\nTranscription preview:")
    print(result['text'][:200] + "...")

Шаг 10: Лучшие практики

1. Выбор подходящей модели

# For speed (testing, demos)
model = whisper.load_model("tiny")

# For balance (general use)
model = whisper.load_model("base")  # or "small"

# For accuracy (production)
model = whisper.load_model("medium")  # or "large-v2"

2. Указывайте язык, если он известен

# Faster and more accurate
result = model.transcribe("audio.mp3", language="en")

# Instead of auto-detection
result = model.transcribe("audio.mp3")  # Slower

3. Подходящая температура

# Recommended for most cases
result = model.transcribe("audio.mp3", temperature=0.0)

# For creative content (not recommended for transcription)
result = model.transcribe("audio.mp3", temperature=0.2)

4. Контекст через начальный промпт

# Technical content
result = model.transcribe(
    "meeting.mp3",
    initial_prompt="This meeting discusses software architecture, APIs, and deployment strategies."
)

# Medical content
result = model.transcribe(
    "consultation.mp3",
    initial_prompt="This is a medical consultation about patient symptoms and treatment."
)

5. Повторное использование экземпляра модели

# Load once, reuse multiple times
model = whisper.load_model("base")

# Process multiple files
for audio_file in ["file1.mp3", "file2.mp3", "file3.mp3"]:
    result = model.transcribe(audio_file)
    # Process result...

6. Длинные аудиофайлы

Для очень длинных записей имеет смысл разбивать на фрагменты:
import whisper
from pydub import AudioSegment

def transcribe_long_audio(audio_path, chunk_length_ms=600000):  # 10 minutes
    """Transcribe long audio by splitting into chunks."""
    model = whisper.load_model("base")
    
    # Load audio
    audio = AudioSegment.from_file(audio_path)
    duration_ms = len(audio)
    
    all_text = []
    all_segments = []
    
    # Process in chunks
    for i in range(0, duration_ms, chunk_length_ms):
        chunk = audio[i:i + chunk_length_ms]
        chunk_path = f"chunk_{i}.wav"
        chunk.export(chunk_path, format="wav")
        
        result = model.transcribe(chunk_path)
        all_text.append(result["text"])
        all_segments.extend(result["segments"])
        
        # Clean up chunk file
        os.remove(chunk_path)
    
    return {
        "text": " ".join(all_text),
        "segments": all_segments
    }

Типичные проблемы и решения

Проблема 1: FFmpeg не найден

Ошибка: FileNotFoundError: ffmpeg
Решение:
# Install FFmpeg
# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Verify
ffmpeg -version

Проблема 2: Нехватка памяти

Ошибка: RuntimeError: CUDA out of memory или нехватка ОЗУ
Решения:
# Use smaller model
model = whisper.load_model("base")  # Instead of "large"

# Or use CPU
import torch
model = whisper.load_model("base", device="cpu")

# Or process in chunks (see above)

Проблема 3: Медленная транскрипция

Симптом: транскрипция очень медленная
Решения:
# Use GPU if available
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
model = whisper.load_model("base", device=device)

# Use smaller model
model = whisper.load_model("tiny")  # or "base"

# Reduce beam size (faster but slightly less accurate)
result = model.transcribe("audio.mp3", beam_size=1)

Проблема 4: Низкая точность

Симптом: много ошибок в тексте
Решения:
# Use larger model
model = whisper.load_model("medium")  # or "large"

# Specify language
result = model.transcribe("audio.mp3", language="en")

# Provide context
result = model.transcribe(
    "audio.mp3",
    initial_prompt="Context about the audio content..."
)

# Use optimal settings
result = model.transcribe(
    "audio.mp3",
    temperature=0.0,
    beam_size=5,
    best_of=5
)

Сценарии использования

1. Транскрипция подкастов

model = whisper.load_model("medium")
result = model.transcribe("podcast.mp3", language="en")

# Save transcript
with open("podcast_transcript.txt", "w") as f:
    f.write(result["text"])

2. Субтитры для YouTube

model = whisper.load_model("base")
result = model.transcribe("video.mp4", language="en")

# Generate SRT
# (Use CLI: whisper video.mp4 --output_format srt)

3. Конспекты встреч

model = whisper.load_model("base")
result = model.transcribe(
    "meeting.mp3",
    language="en",
    initial_prompt="This is a business meeting discussing project updates and deadlines."
)

# Save with timestamps
for segment in result["segments"]:
    print(f"[{segment['start']:.0f}s] {segment['text']}")

4. Транскрипция интервью

model = whisper.load_model("medium")
result = model.transcribe("interview.mp3", language="en")

# Export for editing
with open("interview.txt", "w") as f:
    for segment in result["segments"]:
        f.write(f"[{segment['start']:.2f}s] {segment['text']}\n")

5. Перевод многоязычного контента

model = whisper.load_model("base")

# Translate to English
result = model.transcribe("spanish_audio.mp3", task="translate")
print(result["text"])  # English translation

Whisper и альтернативы

ВозможностьWhisperОблачные APIFaster-Whisper
СтоимостьБесплатноПлатно за минутуБесплатно
Офлайн
СкоростьСредняяВысокаяВысокая (в 2–4 раза)
ТочностьВысокаяВысокаяВысокая (та же)
НастройкаПростаяОчень простаяПростая
Реальное время
Конфиденциальность✅ Локально❌ Облако✅ Локально
Выбирайте Whisper, если:
  • нужна бесплатная офлайн-транскрипция
  • важна конфиденциальность
  • нужен контроль над инфраструктурой
  • обрабатываете пакеты файлов или архивный контент
Выбирайте облачные API, если:
  • нужна транскрипция в реальном времени
  • нужна управляемая инфраструктура
  • есть бюджет на API
  • нужна корпоративная поддержка

Что дальше

Изучив основы, переходите к:

Заключение

OpenAI Whisper — одна из самых мощных открытых моделей речь-текст на сегодня. Сильная многоязычность, высокая точность и полноценная работа офлайн делают его отличным выбором для разработчиков и авторов контента, которым нужен полный контроль над процессом транскрипции.
Главное:
  • Whisper поддерживает более 99 языков с высокой точностью
  • Подбирайте размер модели под задачу
  • Указывайте язык, если он известен
  • Используйте метки слов для точной синхронизации
  • Переиспользуйте загруженную модель для нескольких файлов
  • Для продакшена рассмотрите faster-whisper
Подкасты, субтитры или записи встреч — Whisper даёт надёжное, бесплатное и приватное решение для преобразования речи в текст.

Нужна профессиональная система речь-текст? Загляните на SayToWords — платформа ИИ-транскрипции с оптимизированной производительностью и несколькими форматами вывода.

Попробовать бесплатно

Попробуйте наш сервис ИИ для работы с голосом, аудио и видео уже сейчас! Вы получите не только высокоточную транскрипцию речи в текст, многоязычный перевод и интеллектуальное разделение по дикторам, но и автоматическую генерацию субтитров к видео, умное редактирование аудио‑ и видеоконтента и синхронный аудио‑видео‑анализ. Решение охватывает все сценарии — от протоколирования встреч до создания коротких видео и подкастов. Начните бесплатный тест уже сегодня!

Звук в текст онлайнЗвук в текст бесплатноКонвертер звука в текстЗвук в текст MP3Звук в текст WAVЗвук в текст с метками времениЗвук в текст для встречSound to Text Multi LanguageЗвук в текст субтитрыКонвертировать WAV в текстГолос в ТекстГолос в Текст ОнлайнРечь в ТекстКонвертировать MP3 в текстКонвертировать голосовую запись в текстГолосовой Ввод ОнлайнГолос в Текст с Временными МеткамиГолос в Текст в Реальном ВремениГолос в Текст для Длинного АудиоГолос в Текст для ВидеоГолос в Текст для YouTubeГолос в Текст для ВидеомонтажаГолос в Текст для СубтитровГолос в Текст для ПодкастовГолос в Текст для ИнтервьюАудио интервью в текстГолос в Текст для ЗаписейГолос в Текст для ВстречГолос в Текст для ЛекцийГолос в Текст для ЗаметокГолос в Текст МногоязычныйГолос в Текст ТочныйГолос в Текст БыстроАльтернатива Premiere Pro Голос в ТекстАльтернатива DaVinci Голос в ТекстАльтернатива VEED Голос в ТекстАльтернатива InVideo Голос в ТекстАльтернатива Otter.ai Голос в ТекстАльтернатива Descript Голос в ТекстАльтернатива Trint Голос в ТекстАльтернатива Rev Голос в ТекстАльтернатива Sonix Голос в ТекстАльтернатива Happy Scribe Голос в ТекстАльтернатива Zoom Голос в ТекстАльтернатива Google Meet Голос в ТекстАльтернатива Microsoft Teams Голос в ТекстАльтернатива Fireflies.ai Голос в ТекстАльтернатива Fathom Голос в ТекстАльтернатива FlexClip Голос в ТекстАльтернатива Kapwing Голос в ТекстАльтернатива Canva Голос в ТекстГолос в Текст для Длинного АудиоИИ Голос в ТекстГолос в Текст БесплатноГолос в Текст Без РекламыГолос в Текст для Шумного АудиоГолос в Текст с ВременемГенерировать Субтитры из АудиоТранскрипция Подкастов ОнлайнТранскрибировать Звонки КлиентовГолос TikTok в ТекстАудио TikTok в ТекстYouTube Голос в ТекстYouTube Аудио в ТекстГолосовая Заметка в ТекстГолосовое Сообщение WhatsApp в ТекстГолосовое Сообщение Telegram в ТекстТранскрипция Звонка DiscordГолос Twitch в ТекстГолос Skype в ТекстГолос Messenger в ТекстГолосовое Сообщение LINE в ТекстТранскрибировать Влоги в ТекстКонвертировать Аудио Проповеди в ТекстПреобразовать Речь в ПисьмоПеревести Аудио в ТекстПреобразовать Аудио Заметки в ТекстГолосовой ВводГолосовой Ввод для ВстречГолосовой Ввод для YouTubeГовори и ПечатайПечать Без РукГолос в СловаРечь в СловаРечь в Текст ОнлайнOnline Transcription SoftwareРечь в Текст для ВстречБыстрая Речь в ТекстReal Time Speech to TextLive Transcription AppРечь в Текст для TikTokЗвук в Текст для TikTokРечь в Слова (говоря)Речь в ТекстTalk to Text FreeTalk to Text OnlineTalk to Text for YouTubeTalk to Text for SubtitlesTalk to Text for Content CreatorsTalk to Text for MeetingsАудио в ПечатьЗвук в ТекстИнструмент Голосового ПисанияИнструмент Речевого ПисанияГолосовая ДиктовкаИнструмент Юридической ТранскрипцииИнструмент Медицинской ДиктовкиЯпонская Аудио ТранскрипцияКорейская Транскрипция ВстречИнструмент Транскрипции ВстречАудио встречи в текстКонвертер Лекций в ТекстАудио лекции в текстТранскрипция Видео в ТекстГенератор Субтитров для TikTokТранскрипция Колл-ЦентраИнструмент Reels Аудио в ТекстТранскрибировать MP3 в ТекстТранскрибировать WAV файл в текстCapCut Голос в ТекстCapCut Голос в ТекстVoice to Text in EnglishАудио в текст на английскомVoice to Text in SpanishVoice to Text in FrenchАудио в текст на французскомVoice to Text in GermanАудио в текст на немецкомVoice to Text in JapaneseАудио в текст на японскомVoice to Text in KoreanАудио в текст на корейскомVoice to Text in PortugueseVoice to Text in ArabicVoice to Text in ChineseVoice to Text in HindiVoice to Text in RussianWeb Voice Typing ToolVoice Typing Website