1.17.0 • Published 17 hours ago
dtmf-detection-stream v1.17.0
dtmf-detection-stream
This is a simple node.js DTMF detection stream.
Installation
npm i dtmf-detection-stream
Sample usage
const { ToneStream } = require('tone-stream')
const Speaker = require('speaker')
const DtmfDetectionStream = require('dtmf-detection-stream')
const format = {
sampleRate: 8000,
bitDepth: 16,
channels: 1,
}
const ts = new ToneStream(format)
ts.add([800, 's']) // silence
ts.add([800, 'DTMF:1'])
ts.add([800, 's']) // silence
ts.add([800, 'DTMF:2'])
ts.add([800, 's']) // silence
ts.add([800, 'DTMF:3'])
ts.add([800, 's']) // silence
const dds = new DtmfDetectionStream({format})
dds.on('dtmf', data => {
console.log('Got dtmf:', data)
})
dds.on('speech', data => {
console.log('Got speech:', data)
process.exit(0)
})
ts.on('data', data => {
dds.write(data)
})
const speaker = new Speaker(format)
ts.pipe(speaker)
Output:
$ node mytest.js
Got dtmf: { digit: '1', timestamp: 0.207 }
Got dtmf: { digit: '2', timestamp: 0.4025 }
Got dtmf: { digit: '3', timestamp: 0.6095 }
Got speech: { transcript: '123', timestamp: 0.6095 }
Events
The DtmfDetectionStream emits two kinds of events:
- 'dtmf': single digit as soon as it is detected (notified upon signal extintion).
- 'speech': aggregated digits after 500 milliseconds with no more digits being detected. So it will be like someone is using DTMF to talk (this will permit to treat dtmf-detection-stream as a speech-recog-stream and use it with mrcp_server and ws_speech_server).
More Examples
See here.
1.17.0
17 hours ago
1.16.2
18 days ago
1.16.1
21 days ago
1.15.0
22 days ago
1.16.0
22 days ago
1.14.1
23 days ago
1.14.0
25 days ago
1.13.0
25 days ago
1.12.0
29 days ago
1.11.0
30 days ago
1.10.1
1 month ago
1.10.0
1 month ago
1.9.1
1 month ago
1.9.0
1 month ago
1.8.0
1 month ago
1.7.0
1 month ago
1.6.0
1 month ago
1.9.2
1 month ago
1.2.4
1 month ago
1.5.0
1 month ago
1.2.3
1 month ago
1.2.2
2 years ago
1.2.0
4 years ago
1.1.0
4 years ago
1.0.0
4 years ago