Вверх ↑
Ответов: 8927
Рейтинг: 823
#1: 2013-01-12 16:01:49 ЛС | профиль | цитата
sergvirus, а что из себя представляют эти Ваши звуковые файлы, размер, частота дискретизации, или пару-тройку аналогов вЫложите "в поликлинику для опытов" (команды компьютеру?)
------------ Дoбавленo в 16.01:
line96-61.adsl.kirov.ru писал(а):
Ничего неполучается
Плохо примеры смотрели! У Вас на компьютере по адресу C:\%hiasmElementsDelphiExampleMediaBASSRecordStream.sha -- великолепный пример на эту тему.
Вот он, модифицирован под Ваши нужды:

Add(BASS_Version,10183901,189,238)
{
link(onCheckOk,12302345:doInit,[])
link(onCheckFailed,109118:doMessage,[(233,251)(233,293)])
}
Add(Message,11232751,189,287)
{
Message="Error BASS initialization"
Caption="Error"
Icon=1
}
Add(Message,109118,245,287)
{
Message="Incorrect version of BASS library "
Caption="Error"
Icon=1
}
Add(MainForm,16358250,63,224)
{
Width=813
Height=489
Caption="Compare sound"
Point(Handle)
Point(onClose)
link(onCreate,4252681:doInit,[])
link(onClose,5066922:doStop,[(114,251)(114,97)])
}
Add(BASS_Init,4252681,133,238)
{
link(onInit,10183901:doCheck,[])
link(onError,11232751:doMessage,[(177,251)(177,293)])
link(Handle,16358250:Handle,[(153,226)(124,226)(124,266)(69,266)])
}
Add(BASS_RecordCenter,12302345,245,238)
{
link(onInit,5066922:doStart,[(289,244)(289,167)(121,167)(121,90)])
link(onError,11713735:doMessage,[(289,251)(289,293)])
}
Add(BASS_RecordStart,5066922,133,84)
{
Freq=44100
Mode=1
link(onData,4781887:doDetect,[])
}
Add(Message,11713735,301,287)
{
Message="InitRecord failed!"
Caption="Error"
Icon=1
}
Add(Grapher,13162224,728,161)
{
Left=10
Top=245
Width=485
Height=200
MaxH=0
LeftMargin=0
RightMargin=0
TopMargin=0
BottomMargin=0
}
Add(VolumeDetector,4781887,189,91)
{
DetectLevel=2000
Delay=12000
link(onDetect,16532858:doSumm,[])
}
Add(VolumeSummator,16532858,238,91)
{
link(onResult,4377045:doEvent1,[(278,97)(278,55)])
}
Add(Grapher,13475393,336,49)
{
Left=10
Top=35
Width=485
Height=200
MaxH=0
LeftMargin=0
RightMargin=0
TopMargin=0
BottomMargin=0
}
Add(Hub,4377045,287,49)
{
link(onEvent1,13475393:doAdd,[])
link(onEvent2,3262080:doEdge,[(319,62)(319,104)])
}
Add(VolumeEdge,3262080,336,98)
{
link(onResult,3305714:doSumm,[])
}
Add(VolumeSmoothing,10917253,434,98)
{
Level=100
link(onResult,1474433:doSumm,[])
}
Add(Memory,15172366,609,161)
{
link(onData,3000059:doEvent1,[])
}
Add(Button,9858318,553,203)
{
Left=160
Top=5
Width=110
Caption="Save sample sound"
link(onClick,6288690:doData,[])
}
Add(DoData,6288690,609,203)
{
link(onEventData,10470133:doAdd,[])
link(Data,15172366:Value,[])
}
Add(Edit,10886304,777,154)
{
Left=405
Top=10
Width=95
Text=""
}
Add(VolumeSummator,3305714,385,98)
{
Level=60
Mode=1
link(onResult,10917253:doSmoothing,[])
}
Add(VolumeSmoothing,9264211,532,98)
{
Level=40
link(onResult,15172366:doValue,[(572,104)(572,167)])
}
Add(VolumeComparator,10470133,854,196)
{
Volumes="C:A_WinGamesHiAsmhiasm_4,04b185\randomSampleSoundFile"
link(onOk,12620894:doText,[])
link(onFailed,4539809:doAdd,[(898,209)(898,234)(716,234)(716,251)])
link(Name,10886304:Text,[(867,191)(783,191)])
}
Add(Hub,3000059,658,161)
{
OutCount=3
link(onEvent1,13162224:doAdd,[])
link(onEvent2,4539809:doClear,[(707,174)(707,258)])
link(onEvent3,10470133:doCompare,[(702,181)(702,202)])
}
Add(Label,12620894,910,196)
{
Left=580
Top=10
}
Add(RichEdit,4539809,728,245)
{
Left=505
Top=35
Width=295
Height=410
ScrollBars=2
}
Add(VolumeSummator,1474433,483,98)
{
Level=20
Mode=1
link(onResult,9264211:doSmoothing,[])
}
Add(WinExec,10969450,497,252)
{
}
Add(Button,6838606,350,238)
{
Left=20
Top=5
Width=75
Caption="Open *.ogg"
link(onClick,14764001:doExecute,[])
}
Add(ODialog,14764001,399,238)
{
Filter="Sound|*.ogg"
StartDir="C:A_WinGamesHiAsmhiasm_4,04b185\random"
link(onExecute,1962920:doEvent1,[])
}
Add(FilePartElm,10371895,476,154)
{
Mode=2
link(onPart,13822917:doString,[])
}
Add(Hub,1962920,441,238)
{
OutCount=3
link(onEvent1,7761276:doNext,[(462,244)(462,202)(394,202)(394,160)])
link(onEvent2,10371895:doPart,[(469,251)(469,160)])
link(onEvent3,10969450:doShellExec,[(462,258)(462,265)])
}
Add(InfoTip,13798404,273,14)
{
Info=#7:Удалить|
Width=127
Height=74
}
Add(InfoTip,7451480,343,147)
{
Info=#7:Удалить|
Width=498
Height=144
}
Add(Counter,7761276,420,154)
{
Max=99999
Default=-1
}
Add(FormatStr,13822917,518,154)
{
Mask="%1_%2"
link(onFString,10886304:doText,[])
link(Str1,7761276:Count,[(524,149)(457,149)(457,197)(426,197)])
}
Для сравнения звука необходимо создать образ и сохранить его в отдельной папке (в приложеном примере SampleSoundFile -- все пути у себя переназначьте под свои): Открыть --> проиграть --> назначить имя образу файла (в примере к имени слева добавляется #_ --> Сохранить, и так по всем Вашим файлам.
Эту же программку можно использовать (удалив ненужные визуальности) для сравнения звуков, на выходе будете получать имя подходящего образца, а по начальным цифрам имени осуществлять свои действия.
карма: 19

1
Голосовали:sergvirus