Skip to content

Соцсети сообщества

  • Новости
  • vMix
  • Чат в телеграмм
  • Сообщество
    • Партнёры
    • Реклама
  • Контакты
Предыдущая Следующая

Cайдчейн в vMix – автоматическое регулирование громкости музыки или интершума | vMix Sidechain

15 Февраля 2021
Новости

Cайдчейн в vMix – автоматическое регулирование громкости музыки или интершума

Видеоверсия: 
Огромное спасибо Кириллу Кудрявцеву @kin0shkin из https://sbtg.ru/​ за скрипт! Автоматически регулирует громкость музыки или интершума при наличии голоса в микрофоне.

Скрипт:

‘—–НАСТРОЙКИ—–

dim translateInput as string = “Rus Translate” ‘Имя инпута с Переводчиком
dim origInput as string = “Orig Program L” ‘Имя инпута с Оригинальной звуковой дорожкой

dim volumeStandart as string = “100” ‘Громкость Ориг. инпута, когда Переводчик молчит
dim fadeTimeStandart as string = “1200” ‘Длит. увеличения громкости Ориг., когда Переводчик молчит

dim volumeSpeaking as string = “60” ‘Громкость Оригинального инпута, когда Переводчик говорит
dim fadeTimeSpeaking as string = “200” ‘Длит. затихания Ориг., когда Переводчик говорит

dim voicethreshold as string = “0.05” ‘Порог реагирования на сигнал переводчика, от 0 до 1 (лог. шкала)
‘ Соответствует значениям (не длине) на ползунке громкости: 0.5=50%~=-6dB, 0.1=10%~=-20dB…
‘ Реагирование может не отработать при одиночном импульсе сигнала, но хорошо работает с сигналом типа голоса или музыки

dim checkingIter as integer = 10 ‘Кол-во итераций проверки молчания переводчика перед срабатыванием
dim checkingIterTime as integer = 200 ‘ Интервал (миллисек) между итерациями проверки (рекомменд. от 100, по-умолч. 200)
‘ Значит длит. проверки того, что перевод замолчал и можно включить Ориг. = checkingIter * checkingIterTime (миллисек)

‘—–Конец настроек—–

dim voicemeter as string = “”
dim speaking as boolean = false
dim silence as boolean = false
dim silencechecking as integer = 0
dim muted as boolean = false

do while true

dim xml as string = API.XML()
   dim x as new system.xml.xmldocument
   x.loadxml(xml)

voicemeter = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF1”).Value)
if (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF2”).Value) > voicemeter
voicemeter = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF2”).Value)
end if
muted = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@muted”).Value)

‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=voicemeter)
‘console.writeline(voicemeter)

if voicemeter > voicethreshold And voicemeter.IndexOfAny(“[E]”.ToCharArray) = -1 And Not muted

if silencechecking >= checkingIter ‘<> 0 ‘!=

‘console.writeline(“Speaking”)
silencechecking = 0
‘API.Function(“SetTextColour”,Input:=”TextInput”,SelectedName:=”Timer.Text”,Value:=”yellow”)
‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=”Перевод говорит! ” + voicemeter)
Input.Find(origInput).Function(“SetVolumeFade”, volumeSpeaking + “,” + fadeTimeSpeaking)

end if

‘console.writeline(silencechecking)

else

if silencechecking < checkingIter

silencechecking += 1

end if
if silencechecking = checkingIter

‘console.writeline(“Silence”)
‘API.Function(“SetTextColour”,Input:=”TextInput”,SelectedName:=”Timer.Text”,Value:=”white”)
‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=”Перевод молчит! ” + voicemeter)
Input.Find(origInput).Function(“SetVolumeFade”, volumeStandart + “,” + fadeTimeStandart)
silencechecking = checkingIter + 1

end if

‘console.writeline(silencechecking)

end if

sleep(checkingIterTime)

Loop

admin2023-02-15T13:03:18+00:00

Похожие записи

Школа НАТ 18 апреля проводит обучающий семинар: «На монтаже подправим»
INTEL NUC для участников сообщества
Открывается доступ в бета-версию облачного сервиса для онлайн видеопродакшенов CloudMix
Самые компактные талли со встроенным аккумулятором
Stream-Rental – Профессиональное оборудование для доставки и трансляции видео

Заголовок

СООБЩЕСТВО СТРИМЕРОВ РОССИИ И СНГ

© Copyright 2016 – 2023 | AVStream.ru – сообщество стримеров, продажа, поддержка и обучение vMix. Все права принадлежат правообладателям. Копирование материалов с сайта допускается с активной ссылкой на оригинал. Обращаем внимание, что все данные опубликованные на сайте, носят информационный характер и не являются публичной офертой.

Page load link
Go to Top