Почему reponsivevoice или Google Speech API не работают с моим JavaScript - PullRequest
0 голосов
/ 27 июня 2019

Я часто задавал этот вопрос и не получил хорошего ответа, поэтому, пожалуйста, помогите мне. В настоящее время я работаю над чат-ботом, который отлично работает, единственное, что с ним не так, это то, что я хочу изменить акцент на индийский мужской акцент, но по умолчанию используется американский мужчина. Я попытался использовать html lang = 'en-IN' (он был в тегах при вставке), но это не сработало, поэтому я попытался поместить распознавание.lang = 'en-IN' после распознавания констант, но это тоже не сработало. Моей последней попыткой было использование responseisvevoice.org, это было легко, я просто скопировал ссылку, которую они дали мне, и вставил ее, но это также не сработало! Я был уверен, что простое вставление ссылки, которую они мне дали, не изменит магию акцента моего чат-бота, поэтому я добавил функцию под названием «речь», которая, как я думал, заставит его работать, но нет. Я был бы очень признателен всем, кто дал бы мне хороший ответ о том, как изменить стандартный американский мужской акцент на мужской английский.

const btn = document.querySelector('.talk');
const content = document.querySelector('.content');
const greetings = [
				'If you are good im good too.', 
				'Im doin alright', 
				'doing well.'
];
const weather = [
				'Ask the weatherman!', 
				'I recommend checking your phone or the news ' 
				
];
const name = [
	'My name is techwaala', 
	'its techwaala, because I love to code!'
];
const hello = [
	'Why hello! How are you doing today?', 
	'Hey there How are you?'
];
const hru = [
	'Happy to hear that!', 
	'Im so sorry to hear that', 
	'Feel better soon!'
];
const SpeechRecognition = 
	window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();

recognition.onstart = function() {
	console.log('voice is activated speak into the mic');
};
recognition.onresult = function(event) {
	const current = event.resultIndex;
	
	const transcript = event.results[current][0].transcript;
	content.textContent = transcript;
	readOutLoud(transcript);
}

btn.addEventListener('click', () => {
	recognition.start();
});

function readOutLoud(message) {
	
	const speech = new SpeechSynthesisUtterance();
	speech.text = 'I dont know what you said';
	if(message.includes('how are you')) {
		 const finalText = 
		 greetings[Math.floor(Math.random() * greetings.length)];
		 speech.text = finalText;
		
	} 
	if(['hey', 'hi', 'hello', 'hi there', 'hey there', 'hi techwala', 'hey techwala','hello techwala']
	.some(word => message.includes(word))) {
    const finalText = hello[Math.floor(Math.random() * hello.length)];
    speech.text = finalText;
	
}
	if(['whats your name', 'your name']
	.some(word => message.includes(word))) {
    const finalText = name[Math.floor(Math.random() * name.length)];
    speech.text = finalText;
}
if(['how\'s the weather', 'what\'s the weather like', 'is it sunny', 'is it raining', 'is it cloudy', 'is it snowing', 'what\'s the weather']
	.some(word => message.includes(word))) {
    const finalText = weather[Math.floor(Math.random() * weather.length)];
    speech.text = finalText;
}
	if(['I/m doing good', 'doing good', 'I\'m doing well', 'same old', 'I\'m fine']
	.some(word => message.includes(word))) {
    const finalText = hru[0];
    speech.text = finalText;
} 
else if (['I/m doing bad', 'not good', 'I\'m not good', 'feeling sick', 'I\'m sick', 'feeling blue', 'feeling bad', 'I\'m upset', 'not good', 'I\'m angry']
	.some(word => message.includes(word))) {
    const finalText = hru[1];
    speech.text = finalText;
} 
speech.volume = 1;
	speech.rate = 1;
	speech.pitch = 1;
	window.speechSynthesis.speak(speech);
		
} 
function speak(){
	responsiveVoice.speak(readOutLoud);
}
<!DOCTYPE html>
<html>
<head>
	<title>Page Title</title>
</head>
<body>
<button class="talk">Talk</button>
<h3 class="content"></h3>
<script src="https://code.responsivevoice.org/responsivevoice.js?key=RKLGFBGJ"></script>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...