![]() |
|
|
![]()
|
|
| Potapova |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
задача:
дано: файл wav, являющийся выборкой значений амплитуды требуется: получить выборку значений частот (не для визуализации) и желательно найти способ изменять частоту основного тона. Перечитала все темы по получению частот, однако не смогла разобраться: если использовать бпф, то к каким именно параметрам и какое именно бпф? как изменять частоты основного тона- каким образом должны измениться амплитуды, чтобы, скажем на полтона повысить основной тон(а остальные частоты, которые либо выше основного,либо ниже - не тронуть)? |
|||
|
||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Potapova, Учите определения. А то вы тут такую ахинеею несёте.
|
|||
|
||||
| Potapova |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
пожалуйсте, не ругайтесь, а поясните, в чем я неправа.
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
в бпф надо передавать значения амплитуд, т.е. то, что и содержит wav-файл. На выходе будет такое же кол-во спектральных отсчётов. Только не путайте значения амплитуд левого и правого каналов - их надо обрабатывать отдельными бпф.
Также надо понимать, что спектр меняется со временем, поэтому надо брать бпф не от всего файла, а частями от каких-то отрезков (т.е. в окне). Тут я особых знаний не имею, какая длина такого окна может быть - не знаю. Что такое повысить на полтона, не совсем понимаю, т.к. мало знаком с теорией звука. В общем после такого преобразования можно делать с частотами что угодно. Можешь найти основную гармонику и увеличить её амплитуду, можешь убрать.... После преобразования для получения значений амплитуд звуковой волны надо сделать обратное бпф от изменённого спектра. Это сообщение отредактировал(а) ksili - 8.4.2011, 08:37 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Potapova |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
ksili, огромнейшее спасибо! Я очень благодарна!!!!!!
|
|||
|
||||
| DRUID3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 20.6.2005 Где: Kyyiv Репутация: 2 Всего: 9 |
Вообще читайте в сторону LPC.
В лоб (и через зад, но самый быстрый способ) - RealFFT - даст вам комплексный спектр. Если это точно речь - то основной тон будет максимальным пиком спектрограммы в пределах 200...1000 Hz. Правда основной тон это не столько частота базиса Фурье сколько интенсивность ударов дельта-функцией по линейной модели голосового тракта. Потому если ставится еще задача переноса частоты - то придется озаботиться переносом 2-ой и 3-ей гармоник этой самой основной частоты. По-науке - двигать спектр в верх-вниз нужно с помощью домножения на комплексную экспонету - две гармонические функции в квадратуре - синус и косинус. + соответстующая система полосовых фильтров дабы взять нужный участок. Но это слишком сложно, как для курсовгого или что там оно у Вас... Вспомним, что само БПФ и есть корреляция с комплексными синусоидами, и одновременно фильтрация - в некотором смысле - зачем же плодить новые сущности? То что я напишу дальше - это сплошное радиолюбительство, но работать будет. Итак, допустим Вы уже получили спектрограмму - для простоты представим, что она вещественна. Пусть это номера бинов и соответствующие амплитуды: 0 ** 1 * 2 ****** 3 *** 4 *** 5 **** 6 ** 7 *** Очевидно - основной тон - 2, 4 и 6 - его гармоники. Куда Вам нужно перенести? Допустим в 1. Поставьте бин 2 -> 1, 4 ->3 а 6 в 5. А значения старых бинов 1, 3 и 5 на место старых 2, 4 и 6. Еще раз - это не совсем корректно. На уровне "дворца пионеров" но работать будет. Голос изменится до неузнаваемости -------------------- Every time if you use Linux, you are joined to the communism... практика - критерий истины ... отделенной от нас пропастью субъективного восприятия... |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Расскажите, пожалуйста, в каком законе запрещается копировать голос? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
Модератор:
вопрос про определиние частот вынесен сюда: http://forum.vingrad.ru/forum/topic-353924.html -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |