Как реализовать преобразователь голоса? - PullRequest
11 голосов
/ 06 июня 2009

Я хочу написать приложение, которое изменит входной голос микрофона и сделает его похожим на голос робота или какого-нибудь забавного человека. Оно должно поддерживать отправку измененного голоса во все приложения, такие как IM Software или Game Client. Какую технологию мне выбрать? Windows WaveForm Api? DirectX? аудио драйвер?

Большое спасибо!

Ответы [ 6 ]

7 голосов
/ 06 июня 2009

Есть статья MSDN Coding4Fun , в которой объясняется, как создать устройство смены голоса, работающее через Skype, в C # (.NET). Полный исходный код также размещен в виде проекта на CodePlex . Кроме того, с аудио должно быть довольно легко сделать что-то еще (в отличие от потоковой передачи через Skype), поскольку проект основан на фреймворке NAudio , который содержит хороший уровень абстракции. В любом случае, это достаточно полный (и стабильный) пример, который, безусловно, стоит проверить.

Если вы хотите / должны использовать C ++ или другой язык для разработки, тогда этот проект должен, по крайней мере, дать вам некоторые идеи о том, как это сделать. Тем не менее, если вы можете использовать .NET, то вам повезло, я думаю.

3 голосов
/ 06 июня 2009

Голос робота часто делается с помощью кольцевого модулятора , смешивая голос с синусоидальной волной - это проще. Или используйте эффект вокодер , модулирующий голос на другой сигнал, например прямоугольник, - это может быть немного сложнее. Читайте, как работают эффекты, найдите программу, с помощью которой вы можете проверить, как они звучат (Audacity работает для модулятора звонка, найти и использовать вокодер может быть немного сложнее). Затем прочитайте, как это делается, или найдите библиотеку, которая сделает за вас обработку.

1 голос
/ 06 июня 2009

Вы ищете поддержку плагинов VSTi или DXi.
Есть тонны, которые также действуют как вокодеры, даже бесплатно.
Вам просто нужно написать хост-приложение. Взгляните здесь :)

0 голосов
/ 30 марта 2015

Попробуйте этот пример приложения. Я думаю, что это полезно для вас. Ссылка

0 голосов
/ 06 июня 2009

То, что вы ищете, это вокодер . Я не знаю, имеет ли какая-либо из перечисленных выше технологий эффект вокодера, но наилучший шанс был бы с DirectX.

0 голосов
/ 06 июня 2009

Теперь это хорошая идея, особенно для мобильного приложения.

Я бы, вероятно, начал автономно, используя в качестве входных данных файл .wav, чтобы эффекты работали так, как я хотел. Для этого вы можете использовать любой язык высокого уровня, но вам, вероятно, нужно что-то, что будет достаточно хорошо отображаться в C / C ++.

С точки зрения рабочей версии, я бы использовал нативную версию и делал это на C или C ++. Вы хотите что-то быстрое для обработки звука в реальном времени, и я хотел бы избежать зависимости от таких вещей, как .net для распространения. (Не то, чтобы я имел что-то против .net, он отлично подходит для серверов и распространения внутри компании, но я не очень заинтересован в том, чтобы использовать его в качестве зависимости для программного обеспечения термоусадочной пленки.)

Windows DirectShow был бы заманчивым вариантом - вы могли бы сделать некоторые интересные эффекты и с мультимедиа, если бы у вас был голосовой механизм, реализованный как фильтр прямого показа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...