@Stepgor

Распознавание речи в chrome extension?

Как можно реализовать распознавание речи в расширении для хрома? Какое там разрешение нужно?
  • Вопрос задан
  • 323 просмотра
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Вы можете использовать любой сторонний сервис встроив его в свое расширение: ведь у расширений полный доступ к сайтам. Например, внутри popup-окна расширения вы можете разместить невидимый iframe, где будет открыт сайт Яндекс.Переводчика, а дальше дело техники - по сигналу пользователя выполняйте запись голоса программным кликом на кнопку (голосовой ввод) и просто считывайте результат из текстового поля:
5e2aad4d21db1695075163.png
Добавлю, что некоторые сайты запрещают открывать себя внутри iframe, но это запрет можно обойти удалив запрещающий заголовок. Для этого в background.js разместите код:
chrome.webRequest.onHeadersReceived.addListener(

    function(info) {
	
		var headers = info.responseHeaders; // Получаем массив отсылаемых заголовков
		
		// Обходим массив полученных заголовков:
		
		for (var i=headers.length-1; i>=0; --i) {
			
			var header = headers[i].name.toLowerCase(); // Считываем название того или иного заголовка
			
			// При наличии совпадений, удаляем заголовок:
			
			if (header == 'x-frame-options' || header == 'frame-options') { 
				headers.splice(i, 1);
			}
			
		}
		
		return {responseHeaders: headers}; // Вовращаем почищенный массив заголовков назад
		
    },
	
    { urls: [ '<all_urls>' ], types: [ 'sub_frame' ] },
	
    ['blocking', 'responseHeaders']
	
);


В манифесте, у вас обязательно должны быть указаны нужные разрешения:
"permissions" : [ "webRequest", "webRequestBlocking", "https://web.whatsapp.com/*" ],
"background" : { "persistent": true, "scripts": [ "background.js" ] },
...
"content_scripts" : [ { "matches" : [ "https://web.whatsapp.com/*" ], "all_frames": true, "js" : [ "load.js" ] } ]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
В принципе можно попробовать любое расширение, которое найдете в магазине Google, например Войснот. От себя добавлю, что однажды была у меня задача преобразовать запись в текст, так ни одно разрешение не подошло - все очень коряво распознают русскую речь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы