Skip to content

Instantly share code, notes, and snippets.

View savelee's full-sized avatar

Lee Boonstra savelee

View GitHub Profile
@savelee
savelee / simpleserver.js
Created April 8, 2020 12:30
Speech to Text - Streaming
// 1)
async function transcribeAudioStream(audio, cb) {
// 2)
const recognizeStream = speechClient.streamingRecognize(request)
// 3)
.on('data', function(data){
console.log(data);
cb(data);
})
// 4)
@savelee
savelee / simpleserver.js
Created April 8, 2020 12:28
Speech to Text - Streaming
// 1)
speechClient = new speech.SpeechClient();
// 2)
request = {
config: {
sampleRateHertz: sampleRateHertz,
encoding: encoding,
languageCode: languageCode
},
@savelee
savelee / simpleserver.js
Created April 8, 2020 12:22
Dialogflow - Streaming
// 1)
async function detectIntentStream(audio, cb) {
// 2)
const stream = sessionClient.streamingDetectIntent()
.on('data', function(data){
// 3)
if (data.recognitionResult) {
console.log(
`Intermediate transcript:
${data.recognitionResult.transcript}`
@savelee
savelee / simpleserver.js
Created April 8, 2020 12:17
Dialogflow Streaming
// 1)
sessionId = uuid.v4();
// 2)
sessionClient = new df.SessionsClient();
sessionPath = sessionClient.sessionPath(projectId, sessionId);
// 3)
request = {
session: sessionPath,
queryInput: {
// 4)
@savelee
savelee / simpleserver.js
Created April 8, 2020 11:56
Server - streaming to Dialogflow
//1
io.on('connect', (client) => {
//2
client.on('message', async function(data) {
const dataURL = data.audio.dataURL.split(',').pop();
let fileBuffer = Buffer.from(dataURL, 'base64');
//3 ...
});
@savelee
savelee / index.js
Created April 8, 2020 11:34
Client - Streaming to Dialogflow
// 1)
timeSlice: 4000,
// 2)
// as soon as the stream is available
ondataavailable: function(blob) {
// 3
// making use of socket.io-stream for bi-directional
// streaming, create a stream
@savelee
savelee / index.js
Created April 8, 2020 11:29
Client - Streaming to Dialogflow
// 1)
stopRecording.onclick = function() {
// recording stopped
startRecording.disabled = false;
stopRecording.disabled = true;
// stop audio recorder
recordAudio.stopRecording(function() {
// after stopping the audio, get the audio data
recordAudio.getDataURL(function(audioDataURL) {
@savelee
savelee / index.js
Created April 8, 2020 11:22
Client-side Example - Streaming to Dialogflow
//1)
const startRecording = document.getElementById('start-recording');
const stopRecording = document.getElementById('stop-recording');
let recordAudio;
//2)
const socketio = io();
const socket = socketio.on('connect', function() {
startRecording.disabled = false;
});
@savelee
savelee / index.js
Created March 23, 2020 14:29
getValidationResult Dialogflow
const dialogflow = require('dialogflow');
const client = new dialogflow.v2beta1.AgentsClient({
// optional auth parameters.
});
client.getValidationResult({})
.then(responses => {
const response = responses[0];
@savelee
savelee / index.js
Created March 11, 2020 11:19
Speech Adaptation in Dialogflow
const uuid = require('uuid');
const df = require('dialogflow').v2beta1;
const sessionId = uuid.v4();
const sessionClient = new df.SessionsClient();
const sessionPath = sessionClient.sessionPath(projectId, sessionId);
let request = {
session: sessionPath,
queryInput: {