-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtext_audio.js
More file actions
72 lines (55 loc) · 2.33 KB
/
text_audio.js
File metadata and controls
72 lines (55 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
document.addEventListener("DOMContentLoaded", function() {
const ipAddresses = {
"sensorVideoText": "tcp://128.2.204.249:40000",
"sensorAudio": "tcp://128.2.204.249:40001",
"sensorDOA": "tcp://128.2.204.249:40002",
"sensorVAD": "tcp://128.2.204.249:40003"
}
// Function to send JSON data at startup
function sendJsonData(dealer) {
const ipAddressesJson = JSON.stringify(ipAddresses);
dealer.send(ipAddressesJson);
}
// Function to stream audio data
function streamAudioData(dealer) {
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const audioContext = new AudioContext();
const source = audioContext.createMediaStreamSource(stream);
const analyser = audioContext.createAnalyser();
analyser.fftSize = 2048;
const bufferLength = analyser.frequencyBinCount;
const dataArray = new Uint8Array(bufferLength);
source.connect(analyser);
function sendAudioData() {
analyser.getByteTimeDomainData(dataArray);
dealer.send(dataArray);
requestAnimationFrame(sendAudioData);
}
sendAudioData();
})
.catch(err => console.error('Error accessing microphone:', err));
}
// // Set up ZeroMQ dealer
// const dealer = new JSMQ.Dealer();
// dealer.connect('wss://128.2.204.249:40001');
// // tcp://128.2.204.249:40001
// const dealer = new JSMQ.Dealer({
// url: 'wss://128.2.204.249:40001',
// onMessage: function (message)
// { console.log('Received message:', message); } });
// UPDATE:
const dealer = new JSMQ.Socket('dealer');
dealer.connect('wss://bree.lti.cs.cmu.edu:40001');
dealer.sendReady = function() {
// Send JSON data at startup
sendJsonData(dealer);
};
document.getElementById('startButton').addEventListener('click', function() {
// Start streaming audio when button is clicked
streamAudioData(dealer);
});
// dealer.onMessage = function(message) {
// console.log('Received response:', message.popString());
// };
});