搜尋此網誌

2009年10月17日 星期六

java-呼叫不同calss的method

由於目前寫得程式 我都把它包在同一個class下去執行 這次我把我要的功能分成兩個class 看起來比較明瞭簡單 順便學習一下
EX:
Server2.java (主要執行的程式)
JDKAudioRecorder.java (執行錄音的程式)


我在server2.java中 加入一段
JDKAudioRecorder s = new JDKAudioRecorder(targetDataLine,targetType,outputFile);
由於在 JDKAudioRecorder的constructor是有引數的 所以在這之前需要事先定義引數
如下:
AudioFormat audioFormat = null;
audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,44100.0F, 16, 2, 4, 44100.0F, false);
TargetDataLine targetDataLine = null;
AudioFileFormat.Type targetType = AudioFileFormat.Type.AU;
DataLine.Info info = new DataLine.Info(TargetDataLine.class,audioFormat);
targetDataLine = (TargetDataLine)AudioSystem.getLine(info);
targetDataLine.open(audioFormat);
String Filename = "C://JDKAudioRecord.wav";
File outputFile = new File(Filename);

接著我只要在server2.java中 加入s.main() (main method裡面就能起動整個JDKAudioRecorder.java 要做的事) 因此加入這段就等於把整個JDKAudioRecorder.java執行一次的意思一樣

2009年10月13日 星期二

暫存

最近在處理對聲音判斷其音量大小 目前有點卡關 暫存一些我查到的資訊
似乎是可以利用sample size 和number of channels 來決定此音源的音量大小

Digital audio is stored as a series of samples, where each sample is the amplitude of the sound wave being recorded. The volume of the sound is the same as the amplitude of the sound, therefore, each individual sample is simply encoded as the volume of the sound.

So you break the mic input down into a list of samples (based on the sample size / number of channels) and keep a running average to determine the sound level.

2009年10月7日 星期三

論文後續

情境感知:

(1)被動:
server可以透過google calendar(或其他行事曆的方式),也就是Location+Time,讓server瞭解它所在的地方,是在哪一種情境
ps:但也有可能預定了某個地方是在開會,但卻突然更動,沒有開會,這樣server還能夠用主動的方式,來瞭解它所在的地方是哪種情境

(2)主動:
server可以像人般(有五官)的瞭解它所在的情境在哪
ex:可透過聲音(聲音是否大聲),攝影機(看這個地方人多不多)等

方法:
其他文獻提到,我實驗所歸納的,幾個常見的情境
接著用五官,去分析這幾個情境,看是否能夠分離出來

ex:聲音小聲=>開會、電影院等
聲音大聲=>下課時間等

不知道這樣半年能不能寫的完@@ 囧....