<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Голосовая связь, активация микрофона]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9922&amp;type=atom" />
	<updated>2014-08-27T09:33:14Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=9922</id>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86154#p86154" />
			<content type="html"><![CDATA[<p>Нужен тригер.<br /></p><div class="codebox"><pre><code>  
Loop
{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if (peakValue &gt; 0.0055 and trig=&quot;&quot;)
    {
      Trig=1
        Send {Space Down}
     }
    else if trig=1
    {
     Trig=
      Send {Space Up}
     }
    Sleep, %devicePeriod%
}

</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-08-27T09:33:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86154#p86154</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86153#p86153" />
			<content type="html"><![CDATA[<p>Сейчас возможности нет проверить, но мне кажется что в скрипте ошибка. Я так понимаю что при проверке в цикле уровня микрофона - идет постоянная отправка нажатий клавиш, если же уровень сигнала в микрофоне ниже заданного то идет постоянная отправка отжатий.</p><p>Мне же нужно в момент превышения уровня микрофона зажать кнопку {Space down} и когда уровень стал нижу фонового шума отжать {Space up}</p><p>Вопрос - этот вариант подойдет?<br /></p><div class="codebox"><pre><code>Loop
{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if peakValue &gt; 0.0055
        GoSub, QDown
    if peakValue &lt; 0.0055
        {
        Send {Space up}
        QToggle = 0
        Break
        }
    Sleep, %devicePeriod%
}
Return

QDown:
QToggle++
If QToggle = 1
{
    Send {Space down}
}
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-27T08:35:42Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86153#p86153</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86142#p86142" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Самое обычное условие, ничего сверхестественного.<br /></p><div class="codebox"><pre><code>
Level=0.1
if (peakvalue&gt;level)
  Tooltip, %level%`n%peakvalue%
Else
  Tooltip
</code></pre></div></blockquote></div><p>Я как-то ожидал подводных камней - а там реально проще не куда. У меня так:<br /></p><div class="codebox"><pre><code>Loop
{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if peakValue &gt; 0.0055
        Send {Space Down}
    else Send {Space Up}
    Sleep, %devicePeriod%
}</code></pre></div><p>Буду тестировать - по крайней мере пробелы в блокноте ставит именно когда звучит речь.</p>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-26T05:55:30Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86142#p86142</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86138#p86138" />
			<content type="html"><![CDATA[<p>Самое обычное условие, ничего сверхестественного.<br /></p><div class="codebox"><pre><code>
Level=0.1
if (peakvalue&gt;level)
  Tooltip, %level%`n%peakvalue%
Else
  Tooltip
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-08-26T02:20:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86138#p86138</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86135#p86135" />
			<content type="html"><![CDATA[<p>Прочел ветку VA, но не могу найти, как задать условие при превышении определенного уровня сигнала.</p>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-25T20:48:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86135#p86135</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86133#p86133" />
			<content type="html"><![CDATA[<p>С &quot;capture&quot; не получилось, можете ссылку дать где это написано? А так я отловил уровни от микрофона, попробовал в игре - это не то, что мне нужно - потому как скрипт начинает показывать уровни именно когда я в игре нажимаю кнопку, а нужно наоборот.</p>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-25T18:21:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86133#p86133</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86129#p86129" />
			<content type="html"><![CDATA[<p>Это не мой скрипт это пример с оф-сайта. В качестве ID можно использовать слово &quot;capture&quot; (берет устройство записи по умолчанию). Также на оф-сайте указано, что уровень будет отображаться только когда устройство используется в каком либо приложении.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-08-25T15:11:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86129#p86129</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86128#p86128" />
			<content type="html"><![CDATA[<p>Спасибо!!! Уже нашел эту библиотеку - Vista Audio, уже проверял перехват вывода звука. Сейчас буду смотреть и Ваш скрипт.</p>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-25T15:03:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86128#p86128</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86126#p86126" />
			<content type="html"><![CDATA[<p>Вот так можно взять уровень микрофона:<br />Только нужно подобрать его ID, на моем компе ID микрофона = 5.<br /></p><div class="codebox"><pre><code>#SingleInstance, Force
MeterLength = 30
#include va.ahk

id=5
device := VA_GetDevice(id)
audioMeter := VA_GetAudioMeter(device)

VA_IAudioMeterInformation_GetMeteringChannelCount(audioMeter, channelCount)

; &quot;The peak value for each channel is recorded over one device
;  period and made available during the subsequent device period.&quot;
VA_GetDevicePeriod(&quot;capture&quot;, devicePeriod)

Loop
{
    ; Get the peak value across all channels.
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    meter := MakeMeter(peakValue, MeterLength)

    ; Get the peak values of all channels.
    VarSetCapacity(peakValues, channelCount*4)
    VA_IAudioMeterInformation_GetChannelsPeakValues(audioMeter, channelCount, &amp;peakValues)
    Loop %channelCount%
        meter .= &quot;`n&quot; MakeMeter(NumGet(peakValues, A_Index*4-4, &quot;float&quot;), MeterLength)

    ToolTip, %meter%
    Sleep, %devicePeriod%
}

MakeMeter(fraction, size)
{
    global MeterLength
    Loop % fraction*size
        meter .= &quot;|&quot;
    Loop % (1-fraction)*size
        meter .= &quot;.&quot;
    meter .= &quot;  &quot; fraction
    return meter
}
</code></pre></div><p><a href="http://www.autohotkey.com/board/topic/21984-vista-audio-control-functions/">Требуется библиотека VA.ahk</a></p><p>Хм.. странно, работает только если отрыто окно настроек звука, причем именно вкладка &quot;Запись&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-08-25T14:54:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86126#p86126</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Голосовая связь, активация микрофона]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=86098#p86098" />
			<content type="html"><![CDATA[<p>Есть игра, где активация микрофона для голосовой связи вызывается кнопкой. Я в игре использую макросы AutoHotkey. Подскажите где можно подсмотреть следующий скрипт - нажатие кнопки по уровню шума в микрофоне. То есть я начинаю говорить что-то и AHK жмет кнопку?<br />Поиск пока ни к чему не привел, только распознавание, не хотелось бы предварительно говорить &quot;кодовое слово&quot; для активации. А для того, чтобы сказать что-то не в игру - есть кнопочка &quot;Mute&quot; на гарнитуре.</p>]]></content>
			<author>
				<name><![CDATA[kharlashkin]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32183</uri>
			</author>
			<updated>2014-08-24T22:14:42Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=86098#p86098</id>
		</entry>
</feed>
