Какие есть кроссплатформенные библиотеки для обработки звука в реальном времени на go?
Пытаюсь написать программу которая смогла бы взять звук с микрофона, звук из какого либо приложения, совместить их и послать на выход (в устройство микрофона, например в дискорд или другие подобные программы) - своего рода виртуальный аудиокабель. Хочется попробовать написать это на Go (возможно с использованием CGO). Начал искать подходящие библиотеки, но выбор не очень большой и опыта у меня с этим нету, то есть я не знаю какие библиотеки подойдут для решения поставленной задачи. Пробовал сделать на OpenAL, но библиотека для go написана как-то не очень хорошо и множества нужных функций нету, готов залезть в код на C++ и дописать модуль для го, но хочется убедиться в том, что это решит мою проблему прежде чем начинать.
Поэтому хочу для начала спросить у вас:
0) Подойдет ли OpenAL для решения моей задачи (получится ли захватить звук с приложения, получится ли создать новое виртуальное звуковое устройство итд )
1) Какая библиотека для обработки звука мне подойдет (важно чтобы была кроссплатформенность - macOs, windows как минимум)
2) Есть ли эта библиотека на Go
3) Если библиотека только на плюсах или си, то покидайте пожалуйста статей по теме, как можно сделать модуль для Go на CGO этой библиотеки. (В общих чертах понимаю как это делается, но опыта еще не было)
это надо не тут спрашивать а узнавать в доках к библиотеке!
- изучал доку openAL, может быть невнимательно читал или я чего то не понял, но так и не разобрался как захватить звук из какого-нибудь приложения.
2)
это можно найти в гугле а вообще зачем вам обработка звука если вам надо взять звук с програмы и передать на вход другой
- гуглится несколько библиотек, но вопрос возник из-за того что как я понял не все подходит для моей задачи (например, как я написал выше, не смог разобраться как в openAL захватить звук из какой-то программы). Я продолжаю изучать другие библиотеки, например сейчас пробую PortAudio, но решил задать вопрос, чтобы кто-нибудь более опытный смог сразу направить в нужное место, а то изучать все библиотеки занимает немало времени и сил. К тому же наверняка есть решения, которые я мог упустить.
3)
а вообще зачем вам обработка звука если вам надо взять звук с програмы и передать на вход другой
- для начала мне действительно нужно просто передать звук на другой вход, но в дальнейшем мне потребуется применять фильтры. А дальше и до распознавания голоса дойду.
4)
2) Есть ли эта библиотека на Go - это надо читать тоже в доках к библиотеке!
- для большинства найденных библиотек нету sdk на go, но при этом иногда можно найти что-то подходящее на гитхабе написанное уже кем-то, но гуглится это уже сложнее. Может быть кто-то знает такие библиотеки или пример использования возможностей библиотеки именно на go. А также большинство библиотек написаны только на c/c++ и в документации попросту не упоминаются другие языки.
5)
а вообще зачем это вам?
в ютубе еще 4 года назад видел что-то тип обработка голоса в адоб аудишине для дс так как раз был и захват и вывод в дс
- ну, во первых мне это нужно для опыта и интереса, понять возможности го и просто интересно во всем этом разобраться, во вторых, то что я пытаюсь сделать выходит за рамки готовых программ, которые часто нельзя использовать бесплатно или возникают проблемы при использовании в коммерческих программах, а так же часто нет возможности использовать на мобильных устройствах. В общем, от того что существуют уже решения которые могли бы решить мою задачу (и то не полностью), не говорит о том что я не должен лезть туда и пытаться собрать свой велосипед.
В общем мой вопрос направлен людям, которые разбираются в теме, более опытные чем я и могут подсказать как сделать лучше и куда смотреть чтобы решить мою задачу.
Рано или поздно я и сам докопаюсь до решения, но не факт что оно будет хорошим и тем более единственно верным, хотелось бы так же рассмотреть другие варианты, которые могут предложить другие люди, для разностороннего рассмотрения темы и попыток создать более качественное решение.