Народ, может мне внятно кто то сказать, как сложить несколько звуковых потоков в один?

Уже неделю перекапываю по тем же сайтам эту тему, ничего конкретного, только обобщения, описания и проче. Помогите, только если можно не ссылкой, а прямо здесь напишите по шагам алгоритм сего чуда. Конкретне. У меня есть n звуковых потоков, представленных массивом байт. Мне нужно написать функцию которая имплементирует алгоритм наложения этих потоков, и возвращает массив байт, сопсно с сложенными потоками. Ну пример. Например как в скайпе говорят 3 человека одновременно а четвертый слышит их всех, и сильно матерится что не поймет их, и просит говорить по очереди.
Вот такой эффект нужен. Заране огромное спасибо!
9 года назад от Олеся Артёменко

2 Ответы

0 голосов
1. Производишь обратное преобразование Фурье
2. Складываешь аудиоспектры посэмплово (в прямом смысле - складываешь все значения почастотно между собой)
3. Производишь преобразование Фурье
4?
5. Profit!
P. S. работа со звуком - одна из неочевидных и нетривиальных областей программирования, поэтому если нет желания убивать многие часы ради разовой аудиозадачи, целесобразне найти готовую реализацию задачи такого типа.
9 года назад от Евгений Сафроненко
0 голосов
Если обязательно нужен единый (объединенный) цифровой файл нескольких потоков - то да, А. Чесс почти прав, через БПФ:

1. БПФ- Быстрое преобразование Фурье для сэмплов - отрезков записи потоков по времени.

2. Только обратное БПФ надо применять не в начале, а в конце- спектр получается прямым БПФ!

3. В акустике для повышения быстродействия обычно применячется 1/3- октавный анализ (БПФ) - когда спектр строится не по узкой полоске частоты, а по диапазонам частот 1/3 октавы- абсолютно достаточно для речевых сигналов

4. На практике, если сам объединенный звуковой файл не нужен - куда проще смешивать потоки прям на динамике- и легко, и "мгновенно" (в реальном масштабе времени) - "аналоговый компьютер" получится

5. Даже если нужен сам объед. файл - может проще суммарный звук с динамика заново оцифровать. -если помехи не критичны

Ещё, думаю, можно смешивать потоки прям на усилителе / фильтре шумов - с последующей оцифровкой. (без воспроизведения звуков и шумов)
9 года назад от kim

Связанные вопросы

1 ответ
2 ответов
4 года назад от alena matveeva