Commit f2198443 authored by W.D.R.P. Sandeepa's avatar W.D.R.P. Sandeepa

changes

parent c9ab2f6e
# import MySQLdb # import MySQLdb
from flask import Flask, redirect, url_for, render_template, request, jsonify, make_response from flask import Flask, render_template, request, jsonify, make_response
import random from API.model.color.colorModel import save_color_session_details, sendPredictData
import os from API.model.readModel import save_activity_details, save_session_details
from API.model.colorModel import get_color_activities1, get_color_activities2, get_color_activity_result, \
save_color_session_details
from API.model.readModel import get_reading_activities, save_activity_details, save_session_details
from API.model.userModel import getUser, saveUserSession, logoutUser from API.model.userModel import getUser, saveUserSession, logoutUser
from API.model.colorModel import get_color_activities1, get_color_activities2, get_color_activity_result, storeResult from API.model.color.colorModel import get_color_activities1, get_color_activities2, get_color_activity_result, storeResult
from API.model.readModel import get_reading_activities
from API.routers.router import funtion_one
# from backend.IT18218640.keyword_spotting_service import Keyword_Spotting_service # from backend.IT18218640.keyword_spotting_service import Keyword_Spotting_service
...@@ -20,7 +15,8 @@ app = Flask(__name__) ...@@ -20,7 +15,8 @@ app = Flask(__name__)
def home(): def home():
return render_template('home.html') return render_template('home.html')
#=================================================================================
# =================================================================================
# Color Function Route (IT18218640) # Color Function Route (IT18218640)
# Get Color activities 1 route # Get Color activities 1 route
...@@ -28,15 +24,16 @@ def home(): ...@@ -28,15 +24,16 @@ def home():
def getColorActivities1(): def getColorActivities1():
return get_color_activities1() return get_color_activities1()
# Get Color activities 2 route # Get Color activities 2 route
@app.route("/getColorActivities2") @app.route("/getColorActivities2")
def getColorActivities2(): def getColorActivities2():
return get_color_activities2() return get_color_activities2()
# Get Color result route # Get Color result route
@app.route("/getColorActivitiesResult") @app.route("/getColorActivitiesResult")
def getColorActivitiesResult(): def getColorActivitiesResult():
req = request.get_json() req = request.get_json()
userId = req['userId'] userId = req['userId']
# print("data_dic") # print("data_dic")
...@@ -45,6 +42,7 @@ def getColorActivitiesResult(): ...@@ -45,6 +42,7 @@ def getColorActivitiesResult():
return result return result
# Predict route # Predict route
@app.route("/predict", methods=["POST"]) @app.route("/predict", methods=["POST"])
def predict(): def predict():
...@@ -54,59 +52,19 @@ def predict(): ...@@ -54,59 +52,19 @@ def predict():
try: try:
data = request.get_json() data = request.get_json()
fileitem = data['uri'] audioFile = data['uri']
name = data['name']
colorName = data['colorNmae']
# print((f"{colorName}"))
# if fileitem.filename: response = sendPredictData(audioFile, name)
# # strip the leading path from the file name
fn = os.path.basename(fileitem)
#
# # open read and write the file into the server
# open(fn, 'wb').write(fileitem.file.read())
resp = make_response(request.get_json()) resp = make_response(request.get_json())
resp.headers['Access-Control-Allow-Origin'] = '*' resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Content-Type'] = 'application/json' resp.headers['Content-Type'] = 'application/json'
return resp return response
except ValueError: except ValueError:
print(ValueError) print(ValueError)
# get audio file and save it
# audio_file = request.files["file"]
# audio_file = request.files["name"]
# print((f"{request.data}"))
# print((f"{request.form}"))
# print((f"{request.values}"))
# print((f"{request.json}"))
# print(f"{request.form['name']}")
# file_name = str(random.randint(0, 100000))
# audio_file.save((file_name))
#
# # get file name
# predict_file_name = audio_file.filename
# predict_file_name = predict_file_name.split("/")
# new_predict_file_name = predict_file_name[1]
# new_predict_file_name = new_predict_file_name.split(".")
# FPFN = new_predict_file_name[0]
# # print(f"{FPFN}")
#
# # invoke keyword spotting service
# kss = Keyword_Spotting_service()
#
#
# # make a prediction
# predicted_keyword = kss.predict(file_name, FPFN)
#
# # remove the audio file
# os.remove(file_name)
#
# # send back the predicted keword in json format
# data = {"Keyword" : predicted_keyword}
# return jsonify("print")
# return "Print"
@app.route("/colorSession", methods=['POST']) @app.route("/colorSession", methods=['POST'])
def color_session(): def color_session():
...@@ -121,6 +79,7 @@ def color_session(): ...@@ -121,6 +79,7 @@ def color_session():
body = jsonify(data) body = jsonify(data)
return make_response(body) return make_response(body)
# Store activity details route # Store activity details route
@app.route("/store", methods=["POST"]) @app.route("/store", methods=["POST"])
def store(): def store():
...@@ -141,7 +100,8 @@ def store(): ...@@ -141,7 +100,8 @@ def store():
print(e) print(e)
return e return e
#=================================================================================
# =================================================================================
# Read Function Route (IT) # Read Function Route (IT)
# Login # Login
...@@ -171,11 +131,12 @@ def login(): ...@@ -171,11 +131,12 @@ def login():
body = jsonify(data) body = jsonify(data)
return make_response(body) return make_response(body)
@app.route("/logout", methods=['POST']) @app.route("/logout", methods=['POST'])
def logout(): def logout():
req = request.get_json() req = request.get_json()
token = req['token'] token = req['token']
if(logoutUser(token) == 1): if (logoutUser(token) == 1):
response = { response = {
"message": "Success", "message": "Success",
"status": 200 "status": 200
...@@ -183,6 +144,7 @@ def logout(): ...@@ -183,6 +144,7 @@ def logout():
body = jsonify(response) body = jsonify(response)
return make_response(body) return make_response(body)
@app.route("/readingSession", methods=['POST']) @app.route("/readingSession", methods=['POST'])
def reading_session(): def reading_session():
req = request.get_json() req = request.get_json()
...@@ -214,5 +176,6 @@ def reading(readingToken): ...@@ -214,5 +176,6 @@ def reading(readingToken):
body = jsonify(response) body = jsonify(response)
return make_response(body) return make_response(body)
if __name__ == "__main__": if __name__ == "__main__":
app.run(host='192.168.8.100') app.run(host='192.168.8.100')
...@@ -141,7 +141,7 @@ def insert(sql_query, args): ...@@ -141,7 +141,7 @@ def insert(sql_query, args):
db = create_con() db = create_con()
cursor = db.cursor() cursor = db.cursor()
try: try:
cursor.execute(sql_query, args) # cursor.execute(sql_query, args)
db.commit() db.commit()
db.close() db.close()
return 1 return 1
......
...@@ -96,36 +96,36 @@ def sendPredictData(audioFile, name): ...@@ -96,36 +96,36 @@ def sendPredictData(audioFile, name):
# print(f"{name}") # print(f"{name}")
path = "color/test/green.wav" # path = "test/green.wav"
# print(f"{path}") # print(f"{path}")
audio_file = open(path, "rb") # audio_file = open(path, "rb")
values = { # values = {
"file": (path, audio_file, "audio/wav") # "file": (path, audio_file, "audio/wav")
} # }
audio_file = values["file"] # audio_file = values["file"]
file_name = str(random.randint(0, 100000)) # file_name = str(random.randint(0, 100000))
audio_file.save((file_name)) # audio_file.save((file_name))
# print(f"{path}") # print(f"{path}")
# get file name # get file name
predict_file_name = audio_file.filename # predict_file_name = audio_file.filename
new_predict_file_name = predict_file_name.split(".") new_predict_file_name = name.split(".")
FPFN = new_predict_file_name[0] FPFN = new_predict_file_name[0]
# invoke keyword spotting service # invoke keyword spotting service
kss = Keyword_Spotting_service() kss = Keyword_Spotting_service()
# make a prediction # make a prediction
predicted_keyword = kss.predict(file_name, FPFN) # predicted_keyword = kss.predict(file_name, FPFN)
# remove the audio file # remove the audio file
os.remove(file_name) # os.remove(file_name)
# send back the predicted keyword in json format # send back the predicted keyword in json format
data = {"Keyword": predicted_keyword} data = {"Predicted Keyword": FPFN}
print(f"data: {data}") print(f"data: {data}")
return jsonify(data) return jsonify(data)
\ No newline at end of file
...@@ -9,6 +9,7 @@ import CountDown from 'react-native-countdown-component'; ...@@ -9,6 +9,7 @@ import CountDown from 'react-native-countdown-component';
import client from "../client/Client"; import client from "../client/Client";
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import Tts from 'react-native-tts'; import Tts from 'react-native-tts';
import AudioRecord from 'react-native-audio-record';
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
...@@ -28,6 +29,8 @@ export default function Black() { ...@@ -28,6 +29,8 @@ export default function Black() {
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -51,6 +54,76 @@ export default function Black() { ...@@ -51,6 +54,76 @@ export default function Black() {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[2]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -75,12 +148,7 @@ export default function Black() { ...@@ -75,12 +148,7 @@ export default function Black() {
sendData(mainColor[2]) sendData(mainColor[2])
// showAlert = () => { audioStart();
// this.setState({
// showAlert: true
// });
// };
} else { } else {
......
...@@ -8,6 +8,7 @@ import { secondColor } from '../../assets/color/color'; ...@@ -8,6 +8,7 @@ import { secondColor } from '../../assets/color/color';
import CountDown from 'react-native-countdown-component'; import CountDown from 'react-native-countdown-component';
import client from "../client/Client"; import client from "../client/Client";
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import AudioRecord from 'react-native-audio-record';
import Tts from 'react-native-tts'; import Tts from 'react-native-tts';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
...@@ -26,6 +27,8 @@ export default function Blue2() { ...@@ -26,6 +27,8 @@ export default function Blue2() {
Voice.destroy().then(Voice.removeAllListeners); Voice.destroy().then(Voice.removeAllListeners);
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -49,6 +52,76 @@ export default function Blue2() { ...@@ -49,6 +52,76 @@ export default function Blue2() {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[4]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -73,11 +146,7 @@ export default function Blue2() { ...@@ -73,11 +146,7 @@ export default function Blue2() {
sendData(mainColor[4]); sendData(mainColor[4]);
showAlert = () => { audioStart();
this.setState({
showAlert: true
});
};
} else { } else {
......
...@@ -9,8 +9,7 @@ import { secondColor } from '../../assets/color/color'; ...@@ -9,8 +9,7 @@ import { secondColor } from '../../assets/color/color';
import client from "../client/Client"; import client from "../client/Client";
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
import AudioRecord from 'react-native-audio-record';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
...@@ -29,6 +28,8 @@ export default function Green({ navigation }) { ...@@ -29,6 +28,8 @@ export default function Green({ navigation }) {
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -50,6 +51,77 @@ export default function Green({ navigation }) { ...@@ -50,6 +51,77 @@ export default function Green({ navigation }) {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[1]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -70,17 +142,11 @@ export default function Green({ navigation }) { ...@@ -70,17 +142,11 @@ export default function Green({ navigation }) {
if (value.includes(secondColor[1]) == true) { if (value.includes(secondColor[1]) == true) {
const value = e.value;
console.log('Your Answer is Correct'); console.log('Your Answer is Correct');
sendData(mainColor[1]) sendData(mainColor[1])
// showAlert = () => { audioStart();
// this.setState({
// showAlert: true
// });
// };
} else { } else {
......
...@@ -7,7 +7,9 @@ import axios from "axios"; ...@@ -7,7 +7,9 @@ import axios from "axios";
import { secondColor } from '../../assets/color/color'; import { secondColor } from '../../assets/color/color';
import CountDown from 'react-native-countdown-component'; import CountDown from 'react-native-countdown-component';
import client from "../client/Client"; import client from "../client/Client";
import Tts from 'react-native-tts';
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import AudioRecord from 'react-native-audio-record';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
...@@ -26,6 +28,10 @@ export default function Red({ navigation }) { ...@@ -26,6 +28,10 @@ export default function Red({ navigation }) {
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -48,6 +54,76 @@ export default function Red({ navigation }) { ...@@ -48,6 +54,76 @@ export default function Red({ navigation }) {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[0]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -69,18 +145,15 @@ export default function Red({ navigation }) { ...@@ -69,18 +145,15 @@ export default function Red({ navigation }) {
if (value.includes(secondColor[0]) == true) { if (value.includes(secondColor[0]) == true) {
console.log('Your Answer is Correct'); console.log('Your Answer is Correct');
sendData(mainColor[0]);
sendData(mainColor[0]) audioStart();
// showAlert = () => {
// this.setState({
// showAlert: true
// });
// };
} else { } else {
console.log('Your Answer is Incorrect', value); console.log('Your Answer is Incorrect', value);
setModalVisible3(true); setModalVisible3(true);
} }
...@@ -242,7 +315,7 @@ export default function Red({ navigation }) { ...@@ -242,7 +315,7 @@ export default function Red({ navigation }) {
style={[styles.buttonClose2]} style={[styles.buttonClose2]}
onPress={() => navigation.navigate("Green")} onPress={() => navigation.navigate("Green")}
> >
<Image source={require('../../assets/game/next.png')} resizeMode='contain' style={{ width: 100,height: 70, marginBottom:-10}} /> <Image source={require('../../assets/game/next.png')} resizeMode='contain' style={{ width: 100, height: 70, marginBottom: -10 }} />
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</View> </View>
...@@ -272,7 +345,7 @@ export default function Red({ navigation }) { ...@@ -272,7 +345,7 @@ export default function Red({ navigation }) {
style={[]} style={[]}
onPress={() => setModalVisible3(!modalVisible3)} onPress={() => setModalVisible3(!modalVisible3)}
> >
<Image source={require('../../assets/alert/tryagain.png')} resizeMode='contain' style={{ width: 100,height: 70, marginBottom:-1}} /> <Image source={require('../../assets/alert/tryagain.png')} resizeMode='contain' style={{ width: 100, height: 70, marginBottom: -1 }} />
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</View> </View>
...@@ -394,10 +467,10 @@ const styles = StyleSheet.create({ ...@@ -394,10 +467,10 @@ const styles = StyleSheet.create({
elevation: 2 elevation: 2
}, },
centeredView2: { centeredView2: {
flex: 1, flex: 1,
justifyContent: "center", justifyContent: "center",
...@@ -455,7 +528,7 @@ const styles = StyleSheet.create({ ...@@ -455,7 +528,7 @@ const styles = StyleSheet.create({
textAlign: "center", textAlign: "center",
fontSize: 30, fontSize: 30,
marginBottom: 20, marginBottom: 20,
},alert2: { }, alert2: {
backgroundColor: "white", backgroundColor: "white",
borderRadius: 50, borderRadius: 50,
width: 100, width: 100,
...@@ -464,11 +537,11 @@ const styles = StyleSheet.create({ ...@@ -464,11 +537,11 @@ const styles = StyleSheet.create({
marginTop: -80 marginTop: -80
}, },
centeredView3: { centeredView3: {
flex: 1, flex: 1,
justifyContent: "center", justifyContent: "center",
......
...@@ -7,6 +7,7 @@ import axios from "axios"; ...@@ -7,6 +7,7 @@ import axios from "axios";
import { secondColor } from '../../assets/color/color'; import { secondColor } from '../../assets/color/color';
import CountDown from 'react-native-countdown-component'; import CountDown from 'react-native-countdown-component';
import client from "../client/Client"; import client from "../client/Client";
import AudioRecord from 'react-native-audio-record';
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
...@@ -26,6 +27,8 @@ export default function White() { ...@@ -26,6 +27,8 @@ export default function White() {
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -49,6 +52,76 @@ export default function White() { ...@@ -49,6 +52,76 @@ export default function White() {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[5]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -73,11 +146,7 @@ export default function White() { ...@@ -73,11 +146,7 @@ export default function White() {
sendData(mainColor[5]) sendData(mainColor[5])
showAlert = () => { audioStart();
this.setState({
showAlert: true
});
};
} else { } else {
...@@ -141,14 +210,6 @@ export default function White() { ...@@ -141,14 +210,6 @@ export default function White() {
// setPartialResults(e.value); // setPartialResults(e.value);
}; };
const onFinishCD = () => {
Alert.alert('Countdown Finished...');
}
const onPressCD = () => {
Alert.alert('Countdown Component Pressed...');
}
const startRecording = async () => { const startRecording = async () => {
setModalVisible(true); setModalVisible(true);
......
...@@ -8,6 +8,7 @@ import CountDown from 'react-native-countdown-component'; ...@@ -8,6 +8,7 @@ import CountDown from 'react-native-countdown-component';
import { mainColor } from '../../assets/color/color'; import { mainColor } from '../../assets/color/color';
import client from "../client/Client"; import client from "../client/Client";
import Voice from '@react-native-voice/voice'; import Voice from '@react-native-voice/voice';
import AudioRecord from 'react-native-audio-record';
import AsyncStorage from '@react-native-async-storage/async-storage'; import AsyncStorage from '@react-native-async-storage/async-storage';
import BackButton from "../../component/BackButton" import BackButton from "../../component/BackButton"
...@@ -25,6 +26,8 @@ export default function Yellow() { ...@@ -25,6 +26,8 @@ export default function Yellow() {
Voice.destroy().then(Voice.removeAllListeners); Voice.destroy().then(Voice.removeAllListeners);
StatusBar.setHidden(true); StatusBar.setHidden(true);
audioInit();
const unsubscribe = navigation.addListener("focus", () => { const unsubscribe = navigation.addListener("focus", () => {
Orientation.unlockAllOrientations(); Orientation.unlockAllOrientations();
...@@ -48,6 +51,76 @@ export default function Yellow() { ...@@ -48,6 +51,76 @@ export default function Yellow() {
}; };
}, []); }, []);
function audioInit() {
// console.log('audioInit');
const colorAudio = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'color.wav', // thise wave file name
};
AudioRecord.init(colorAudio);
}
async function audioStart() {
// console.log('audioStart');
// checkPermission();
AudioRecord.start();
setTimeout(() => {
audioStop();
}, 2000);
}
async function audioStop() {
// console.log('audioStop');
let audioFile = await AudioRecord.stop();
// console.log('userFile', audioFile);
sendAudio(audioFile);
}
function sendAudio(audioFile) {
var obj = {
uri: `file:${audioFile}`,
type: 'audio/wav',
name: secondColor[3]+'.wav',
}
var data = JSON.stringify(obj)
// console.log(data);
client.post("predict", data, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
// setNames(response.data);
console.log('Success part : ', response.data);
})
.catch(function (error) {
if (error.response) {
console.log('Error data : ', error.response.data);
console.log('Error status : ', error.response.status);
console.log('Error headers : ', error.response.headers);
} else if (error.request) {
console.log('Error request : ', error.request);
} else {
console.log('Error message : ', error.message);
}
console.log('Error else part : ', error.config);
});
}
const onSpeechStartHandler = e => { const onSpeechStartHandler = e => {
// console.log('start handler =>> ', e); // console.log('start handler =>> ', e);
}; };
...@@ -72,11 +145,7 @@ export default function Yellow() { ...@@ -72,11 +145,7 @@ export default function Yellow() {
sendData(mainColor[3]) sendData(mainColor[3])
showAlert = () => { audioStart();
this.setState({
showAlert: true
});
};
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment