Amazon is reportedly spending billions of dollars to keep people from getting bored with Alexa. (2023)

Make Yahoo your home page

Discover something new every day from news, sports, finance, entertainment and more!

generic

(Video) Amazon is reportedly spending billions of dollars to try to keep people from getting bored with Alex

begin session

Post

      {promoMarkup}{notifMarkup}

    {CenterNavMsg notification}

    ',panelPlantillaVacío='

  • {emptyPanelMsg}

  • ',panelErrorTemplate='

    {Error message}

    (Video) Family Guy Season 15 Episode 20 Full - Family Guy New 2023 Nocuts 1080p

    ',panelParentTemplate='

    ',notifOnboardPromoTemplate='

  • Amazon is reportedly spending billions of dollars to keep people from getting bored with Alexa. (3)

    {notifOnboardMsg}

  • ',EXPANDED_PANEL="panel_expandido",ERROR_PANEL="panel_error",NotificationView=function(){função e(n,t){classCallCheck(this,e);var i=this;i._config=n,i._panelNode= null,i._store=t}return createClass(e,[{key:"_generatePanelMarkup",value:function(e,n){var t=this._config,i=void 0,o=void 0;"indefinido" !=Fenstertyp&&(i=window.Notification&&"default"=window.Notification.permission,o=t.promos.bypassEligibleClassCheck||hasClass(document.body,t.promos.eligibleBodyClass));var r=t.promociones .enableNotifOnboard&&i&&o?notifOnboardPromoTemplate:"";if(r){var s=t.promos.showYahooLogo?"":"yns-no-logo";r=r.replace("{notifOnboardBtnLabel}",t.promos. notifOnboardBtnLabel ).replace("{notifOnboardMsg}",t.promos.notifOnboardMsg).replace("{subscriptionTopic}",t.promos.subscriptionTopic).replace("{noLogoClass}",s).replace("{promoLogo} " ,t.promos.promoLogo)}var a=n.newCount>t.panel.maxCount?n.newCount:"",c=t.panel.notificationCenterPath,l=c?"":constants.panelHideElement,d= t .panel.headerMsg?"":" "+const antes.panel Hid eElement,u=c?constants.panelPaddingBtm:"",p=void 0;n.count?p=n.markup:p=panelEmptyTemplate.replace("{emptyPanelMsg}",t.panel.emptyPanelMsg) ;return e = e.replace("{notifMarkup}",p).replace("{promoMarkup}",r).replace("{hideClass}",l).replace("{notifCenterLink}",c). replace(" { paddingClass}",u).replace("{headerMsg}",t.panel.headerMsg).replace("{hideHeaderClass}",d).replace(/{notificationCenterNavMsg}/g,t.panel. notificationCenterNavMsg). replace (/{newCount}/g,a)}},{key:"render",value:function(e,n){var t=this;if(t._panelNode){var i=void 0,o= t ._panelNode,r=void 0,s=void 0;switch(e){case EXPANDED_PANEL:i=panelTemplate,s=t._store.getNotifications(),r=t._generatePanelMarkup(i,s),o.innerHTML = r;break;case ERROR_PANEL:r=(i=panelErrorTemplate).replace("{errorMsg}",t._config.panel.errorMsg),o.innerHTML=r}n&&n()}else n&&n(new Error(" No übergeordnetes Panel")}},{Schlüssel:"createPanelParentNode",value:function(e){e&&(e.innerHTML=panelParentTemplate,this._panelNode=document.getElementById(constants .panelNodeId))}},{Schlüssel: " updateBadgeNode", value:function(e){if(e){var n=this._store.getNotifications().newCount,t=this._config.badge.maxCount;if (n){var i=n>t ? t+"+":n;e.innerHTML=i}else e.innerHTML=""}}},{clave:"addStyles",value:function(e){if (e&&"indefinido"!=tipo de ventana) {var n=document.getElementById(this._config.panel.styleTagId);n||((n=document.createElement("estilo")).type="text/css ",n.id=este._config. painel.estilo TagId,n.innerText=e,document.head.appendChild(n)}}}]),e}(),EXPANDED_PANEL$1="erweitertes_panel",ERROR_PANEL$1="error_panel",PanelController=función(){ função e( n,t,i){classCallCheck(this,e);var o=this;o._store=t,o._view=i,o._config=n;var r=o._config.panel;o . _panelParentNode=document.querySelector(r.parentSelector),o._badgeNode=o._config.badge.selector&&document.querySelector(o._config.badge.selector),o._indicatorNode=r.indicatorSelector&&document.querySelector(r.indicatorSelector)} volver createClass(e,[{key:"createPanelParentNode",value:function(){this._view.createPanelParentNode(this._panelParentNode de),this._notifPanelNode=document.getElementById(constants.panelNodeId)}},{key:"refreshPanelNode ",value:function(e,n){var t=this;addClass(t._notifPanelNode,constants.panelLoading), t._store.fetchNotifications(e,(function(e,i){var o=window.wafer&&window. oblea.base;o&o.destroy(t._notifPanelNode),e?t._notifPanelNode.innerHTML||(t._view. render(ERROR_PANEL$1),addClass(t._noti fPanelNode,constants.panelLoading)):(t._view .render(EXPANDED_PANEL$1),t._view.updateBadgeNode(t._badgeNode),t._showBadge(),t._showIndicator( ),t._view.addStyles(i. css)),removeClass(t._notifPanelNode,constants. panelLoading),o&&o.sync(t._notifPanelNode.parentNode),n&&n(e, i)}))}},{clave :"resetBadge",valor:función() {var e=this;e._store.resetNewCount(),e._view.updateBadgeNode(e._badgeNode),addClass(e._badgeNode ,e._config.badge.hideClass)} },{clave:"_showIndicator",valor :function(){this._indicatorNode&&(this._store.getNotifications().newCount?addClass(this._indicatorNode,this._config.panel .indicatorClass):removeClass(this._indicat orNode,this._config.panel.indicatorClass)) }},{key:"_showBadge",value:function(){var e=this;e._store.getNotifications().newCount ?removeClass(e._badgeNode,e. _config.badge.hideClass):addClass(e._badgeNode,e._config.badge.hideClass)}}]),e}(),config={promos:{eligibleBodyClass:"display-push-promos",enableNotifOnboard:! 0,bypassEligibleClassCheck:!1,notifOnboardBtnLabel:"Benachrichtige mich",notifOnboardMsg:"Erhalte Benachrichtigungen für aktuelle Nachrichten und Schlagzeilen",promoLogo:"https://s.yimg.com/cv/apiv2/ae/news/circle_bell. png ",showYahooLogo:!0,subscriptionTopic:"gondor_homerun_news"},badge:{hideClass:"",maxCount:5,selector:""},panel:{emptyPanelMsg:"Du hast keine neuen Benachrichtigungen.",errorMsg:" " ,headerMsg:"Benachrichtigungen",imageTag:"img:40x40|2|80",indicatorClass:"yns-indicator",indicatorSelector:null,maxCount:6,notificationCenterNavMsg:"Alle {newCount} Benachrichtigungen anzeigen",notificationCenterPath:" " ,notificationTypes:"",parentSelector:null,styleTagId:"notificationStyles",theme:"default"},service:{attemptCount:2,attemptDel ay:1,url:null,resetUrl:null,isRMP:!1,responseType: "json",timeout:1500}},Main=function(){function e(n){classCallCheck(this,e);var t =this;t.config=t._parseConfig(n),t._validateRequiredConfigs() &&(t._request=nueva NotificaciónSolicitud(t.config),t._ store=nueva NotificationStore(t.config,t._request),t ._view=new NotificationView(t.config,t._store),t._panelController=nuevo PanelController(t.config,t._store,t._view), t._panelController .createPanelParentNode(),t._assignHelperMethods())} devuelve createClass(e,[{key:"_parseConfig",value:function(e){var n={});for(var t in objectAssign(n ,config) ,n)if(n.hasOwnProperty(t)){ var i=n[t],o=e[t];"object"===(void 0===i?"undefined":_typeof (i) )?objectAssign(i,o):n[t] =e[t]}return n}},{key:"_validateRequiredConfigs",value:function(){var e=this.config;return!( !e. panel.parentSelector||!e.service.url)} },{key:"_assignHelperMethods",value:function(){var e=this;e.helpers={refreshPanelNode:e._panelController.refreshPanelNode.bind(p. _panelController),resetBadge:e._panelControlle r.resetBadge.bind(e._panelController),resetIndicator:function(){removeClass(e._panelController._indicatorNode,e.config.panel.indicatorClass)}}}}]),e} (),notificationClient_module_min=Principal,notificationClient ={NotificationClient:notificationClien t_module_min},CONSUMPTION_STORAGE_KEY="lnct",NotifClient=function(){function e(){var e,n;this.personalized=!1,this.ybarElem=document .getElementById("ybar"),this .partnerClasses=null ===(n=null===(e=this.ybarElem)||void 0===e?void 0:e.className)||void 0 ===n?void 0:n .match(/ ybar-variant-([a-z]*)/),this.client=new NotificationClient.NotificationClient(this.getConfig())}return e.prototype.refreshPanel=function (){var e,n,t,i=this ,o={lastUpdate:this.getTimeStamp()||this.setTimeStamp(),loadInHpViewer:!0,includePersonalized:this.per personalizado},r=(null===(e=window.YAHOO)| |void 0===e?void 0:e.context)||(null===(n=window.Af)||void 0===n?void 0:n.context)||{}; return r.region&&r.lang&&(o.lang=r.lang,o.region=r.region),(null===(t=this.partnerClasses)||void 0===t?v oid 0:t .length)&&(o.partner=this.partnerClasses[1]),new Promise((function(e,n){i.client.helpers.refreshPanelNode({matrixParams:o},(function(t ,i){ t&&(logError("Benachrichtigungsaktualisierungsfehler:",t),n(t)),e(i)}))}))},e.prototype.resetBadge=function(){este.cliente. helpers.resetBadge(),this.setTimeStamp()},e.prototype.getConfig=function(){var e,n,t,i,o,r={Promoções:{eligibleBodyClass:"display-push-promos", enableNotifOnboard:!0},badge:{selector:"#notif-badge",hideClass:"ybar-notification-hidden"},panel:{emptyPanelMsg:"Du hast keine neuen Benachrichtigungen.",errorMsg:"Bitte versuche es später noch einmal .",headerMsg:"Notificações",maxCount:5,parentSelector:"#ybarNotificationBody",notificationTypes:"breakingNews"},service:{url:"/tdv2_fp/api/resource/NotificationHistory.getHistory",isRMP:! 1} },s=document.getElementById("notificación-contenedor"),a=null===(e=null==s?void 0:s.dataset)||void 0===e?void 0: mi. config,c={};if(a){"att"===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(r .promos.showYahooLogo=!1);pruebe{var l=J SON.parse(a);c=__assign({},l),this.personalized=1===l.personalize}catch(e){logError ("Erro de análise de configuração de notificações", e)}s&&delete s.dataset .config}var d=this.mergeConfigs(r,c);return(null===(t=this.partnerClasses)||void 0 === t?void 0:t.longitud)&&"yahoo"!= =(null===(i=this.partnerClasses)||void 0===i?void 0:i[1])&&( null== =(o=d.promos)||void 0=== o?void 0:o.subscriptionTopic)&&delete d.promos.subscriptionTopic,d},e.prototype.mergeConfigs=function(e,n){ var t= __assign({},e);for(var i in e) t[i]=__assign(__assign({},e[i]),n[i]);return t},e.prototype. getTimeStamp=función (){var e;return null===(e=window .localStorage)||void 0===e?void 0:e.getItem(CONSUMPTION_STORAGE_KEY)},e.prototype.setTimeStamp=function() {var e ,n=""+Math.floor((nova data). getTime()/1e3);return null===(e=window.localStorage)||void 0===e||e.setItem (CONSUMPTION_STORAGE _KEY, n),n},e}(),notifClient=nuevo r NotifClient ,getNotifClient=function(){return notifClient},reInit=function(){notifClient=neuer NotifClient},ybarRapid,ybarRapidInterva l,ybarRapidErrMsg="" ,beaconQueue=[],noop=function(){},logRapidError= function(){window.removeEventListener("beforeunload",logRapidError),""!==ybarRapidErrMsg&&logError("Rapid nicht auf Seite gefunden ",new Error(ybarRapidErrMsg ))},findRapidWithSpaceid=function(e){var n=void 0 ;if(e&&e.longitud>0)for(var t=0;t

    0){if(ybarRapid.addModules(o,!1,i),beaconQueue.length>0)for(e=0;e90&&fireImageBeacon("rendimiento",e)}catch(e){}}),1e3)}))},measureInit=medir("ybar-init");initYbar(),measureInit.stop(),initPerformanceMetricsBeaconListener(), initRapid(),initErrorBeaconListener();var selected="_yb_dv7o4",Css$7={"right-item":"_yb_cekhb",selektiert:selektiert,"ybar-mod-topnavigation":"_yb_1axc6","ybar-mod- topnavigation-teaser-imp":"_yb_x6002"},DOCUMENT_NODE_TYPE=9;if("undefined"!=Elementtyp&&!Element.prototype.matches){var proto=Element.prototype;proto.matches=proto.matchesSelector||proto . mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector}A função é nächsten(e,n){for(;e&&e.nodeType!==DOCUMENT_NODE_TYPE;){if("function"==typeof e.matches&&e .matches(n))return e;e=e.parentNode}}var next_1=siguiente;function _delegate(e,n,t,i,o){var r=listener.apply(this,arguments);return e. addEventListener(t,r,o),{destroy:function(){e.removeEventListener(t,r,o)}}}Funktionsdelegierter(e,n,t,i,o){return"function"==typeof e .addEventListener?_delegado. apply(null,arguments):"function"==typeof t?_delegate.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)), Array.prototype.map.call(e,(function(e){return _delegate(e,n,t,i,o)})))}função listener(e,n,t,i){return function(t ){t.delegateTarget=closest_1(t.target,n),t.delegateTarget&&i.call(e,t)}}var Delegate_1=Delegierter,ListNode=Função(e){this.data=e,this.next=null ,this.prev=null},LinkedList=function(){function e(){this.head=null,this.tail=null}return e.prototype.push=function(e){var n=new ListNode(e );devolver esta.cabeza?esta.cola?(n.prev=esta.cola,esta.cola.siguiente=n,esta.cola=n):(esta.cola=n,esta.cola.prev=esta. head,this.head.next=this.tail):(this.head=n,n.next=this.tail),n},e.prototype.size=function(){for(var e=0,n =this.head;n;)e+=1,n=n.next;return e},e.prototype.getHead=function(){return this.head},e.prototype.getTail=function(){return this .tail},e.prototype.get=function(e){if(e>=this.size())return null;for(var n=0,t=this.head;( null==t?v oid 0 :t.next)&&n0&&Array.prototype.forEach.call(e,(function(e){e.onerror=function(){e.onerror=null,e.style.display="none"}}))},fixLogoOutline=function(e,n){e&&(hideOutlineOnMouseDown("#ybar-logo","#ybar-logo",n),n.onDestroy((function(){e.classList.remove("ybar-show-outline"),e.classList.remove("ybar-hide-outline")})))},logoClick=function(e,n){n&&e.addElementListener(n,"click",(function(){e.triggerEvent("logo-click")}))},init$3=function(e,n){n.logoImages&&hideLogosOnError(n.logoImages),n.wrapper&&(fixLogoOutline(n.wrapper,e),logoClick(e,n.wrapper))};initModule("ybar-mod-logo",(function(e){var n={wrapper:document.getElementById("ybar-logo"),logoImages:document.querySelectorAll(".".concat(Css$6["logo-image"]))};init$3(e,n)}));var overlay$1="_yb_tiyvj",tooltip="_yb_tnk78",tooltip__text="_yb_kmn5f",tooltip__voice="_yb_10fib",tooltip__web="_yb_5r8pi",dark="_yb_j2vl1",darker="_yb_16i9n",light="_yb_1pino",midnight60="_yb_15ar8",Css$5={"dropdown-open":"_yb_tgk49","merchant-is-selected":"_yb_18isw",overlay:overlay$1,"selected-merchant-clear-button":"_yb_1lv63","shops-buttons":"_yb_198ec","styled-select":"_yb_1a68h",tooltip:tooltip,"tooltip--show":"_yb_1bd4v",tooltip__text:tooltip__text,tooltip__voice:tooltip__voice,tooltip__web:tooltip__web,dark:dark,darker:darker,light:light,midnight60:midnight60},range=function(e,n){var t=Math.max(e,n),i=Math.min(e,n),o=Math.abs(t-i);return __spreadArray([],new Array(o+1),!0).map((function(e,n){return i+n}))},openSearchOverlay=function(e,n,t){var i=e.getConfig().bucketConfig,o=(void 0===i?{}:i).enable_search_ui,r=void 0!==o&&o;if(n.ybar){n.ybar.classList.add("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.add("ybar-overlay"),document.body.classList.add("ybar-overlay-noscroll");beaconClick("ybar","websrch","",{elm:"expand",subsec:"searchbox",itc:"1"}),setTimeout((function(){n.searchInput instanceof HTMLInputElement&&(t&&(n.searchInput.value=t),n.searchInput.focus(),r&&n.searchInput.click())}))}},closeSearchOverlay=function(e){var n;null===(n=e.ybar)||void 0===n||n.classList.remove("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.remove("ybar-overlay"),document.body.classList.remove("ybar-overlay-noscroll"),e.searchInput instanceof HTMLInputElement&&(e.searchInput.value="",e.searchInput.blur())},initMweb=function(e,n){"smartphone"===e.getConfig().device&&(e.addElementListener(n.searchBoxPlaceholder,"click",(function(){openSearchOverlay(e,n)})),e.addElementListener(n.searchBoxPlaceholder,"keydown",(function(t){var i=t,o=i.keyCode,r=i.key,s=range(65,90),a=__spreadArray(__spreadArray([],range(58,57),!0),range(96,105),!0),c=__spreadArray(__spreadArray([],s,!0),a,!0).includes(o);(32===o||13===o||c)&&(t.preventDefault(),t.stopPropagation(),openSearchOverlay(e,n,c?r:""))})),n.searchBoxBackButton&&(e.addElementListener(n.searchBoxBackButton,"click",(function(e){e.stopPropagation(),closeSearchOverlay(n);beaconClick("ybar","back-close-srch","",{elm:"btn",subsec:"searchbox",itc:"1"})})),e.addElementListener(n.searchInput,"keyup",(function(e){e.stopPropagation();27===e.keyCode&&(e.stopPropagation(),closeSearchOverlay(n))}))),e.addEventListener("viewerClosed",(function(){closeSearchOverlay(n)})),e.onDestroy((function(){closeSearchOverlay(n)})))},Tooltip=function(){function e(e,n,t){n&&(this.ybar=e,this.elem=n,this.options=t,this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.addEventListeners())}return Object.defineProperty(e.prototype,"tooltip",{get:function(){var e=this;return this.tooltipMarkup||(this.tooltipMarkup=this.createTooltip(),(this.options.tooltipParentElm||this.elem).appendChild(this.tooltipMarkup),this.ybar.onDestroy((function(){var n,t;null===(t=null===(n=e.tooltipMarkup)||void 0===n?void 0:n.parentNode)||void 0===t||t.removeChild(e.tooltipMarkup)}))),this.tooltipMarkup},enumerable:!1,configurable:!0}),e.prototype.show=function(){this.tooltip.classList.add(this.options.showClass)},e.prototype.hide=function(){this.tooltip.classList.remove(this.options.showClass)},e.prototype.addEventListeners=function(){this.ybar.addElementListener(this.elem,"mouseenter",this.show),this.ybar.addElementListener(this.elem,"focus",this.show),this.ybar.addElementListener(this.elem,"mouseleave",this.hide),this.ybar.addElementListener(this.elem,"blur",this.hide)},e.prototype.createTooltip=function(){var e=document.createElement("div");e.className=this.options.containerClass||"";var n=document.createElement("p");return n.textContent=this.options.label,n.className=this.options.textClass||"",e.appendChild(n),e},e}();createCommonjsModule((function(module){(function(){var __webpack_modules__={"./src/index.js":/*!**********************!*\ !*** ./src/index.js ***! \**********************/function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){eval("var I18n = __webpack_require__(/*! ./lib/I18n */ \"./src/lib/I18n.js\");\n\n(function (win, doc) {\n \"use strict\";\n\n var defaultConfig = {\n uiLang: 'en-US',\n speechLang: 'en-US',\n voiceButton: '#voice-btn',\n searchBox: {\n form: '#sf',\n input: '#yschsp',\n params: {\n fr: '',\n fr2: ''\n }\n },\n enable_voice_trending: false,\n trending: {\n market: \"en-us\"\n },\n ui: {\n speechOverlay: {\n disableBlur: false\n }\n },\n browsers: {\n edge: false\n }\n };\n\n function VoiceSearch(config) {\n var self = this;\n self.config = Object.assign(defaultConfig, config || {});\n self.i18n = new VoiceSearch.I18n({\n lang: self.config.uiLang\n });\n self.renderPermissionGuide(self);\n self.renderSpeechPanel(self);\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = false;\n self.recognition = null;\n self.voiceButton = doc.querySelector(self.config.voiceButton);\n self.searchBoxForm = doc.querySelector(self.config.searchBox.form);\n self.searchBoxQuery = doc.querySelector(self.config.searchBox.input);\n self.speechPanel = doc.querySelector('#spch');\n self.speechButtonContainer = doc.querySelector('#spchbc');\n self.speechButton = doc.querySelector('#spchbc-btn');\n self.speechText = doc.querySelector('#spcht');\n self.speechOverlay = doc.getElementById('spch-overlay');\n self.retryLink = doc.querySelector('#spcht-retry');\n self.trending = doc.getElementById('spch-trending');\n self.trendingTerms = doc.getElementById('trending-terms');\n self.termSpans = doc.getElementsByClassName(\"trending-term\");\n self.closeButton = doc.querySelector('#spchx');\n self.startAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-start-202105050733.wav');\n self.resultAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-result-202105050733.wav');\n self.errorAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-error-202105050733.wav');\n self.closeAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-close-202105050733.wav');\n self.permissionGuide = doc.querySelector('#spchp');\n self.permissionGuideClose = doc.querySelector('#spchpx');\n self.permissionGuideTimer = null;\n\n self.onEscKeyDown = function (e) {\n if (e.code !== 'Escape') {\n return;\n }\n\n self.recognition.stop();\n self.sendBeacon('keybrd', 'voicesearch_cancel_esc'); // The clean up should put inside closePanel() instead of here,\n // or func won't be cleaned up if user close panel with btn or overlay\n\n self.closePanel(self);\n };\n\n if (self.isBrowserSupported()) {\n var SpeechRecognition = win.SpeechRecognition || win.webkitSpeechRecognition;\n var SpeechGrammarList = win.SpeechGrammarList || win.webkitSpeechGrammarList;\n var speechGrammar = '#JSGF V1.0;';\n self.recognition = new SpeechRecognition();\n var speechRecognitionList = new SpeechGrammarList();\n\n if (speechRecognitionList.addFromString) {\n speechRecognitionList.addFromString(speechGrammar, 1);\n }\n\n self.recognition.grammars = speechRecognitionList;\n self.recognition.continuous = false;\n self.recognition.lang = self.config.speechLang;\n self.recognition.interimResults = false;\n self.recognition.maxAlternatives = 1;\n /* Listeners */\n\n if (self.voiceButton) {\n self.voiceButton.onclick = function () {\n self.recognition.start();\n\n if (self.permissionGuideTimer) {\n win.clearTimeout(self.permissionGuideTimer);\n }\n\n self.permissionGuideTimer = win.setTimeout(function () {\n if (!self.isRecognitionStart) {\n self.showPermissionGuide(self);\n }\n }, 300); // Also close when pressing esc\n\n doc.addEventListener('keydown', self.onEscKeyDown);\n self.sendBeacon('clk', 'voicesearch');\n };\n }\n\n if (self.speechButton) {\n self.speechButton.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_mic_restart');\n } else {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_panel_mic_close');\n self.closePanel(self);\n }\n };\n }\n\n if (self.retryLink) {\n self.retryLink.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_retry');\n }\n };\n }\n\n if (self.speechOverlay) {\n self.speechOverlay.onclick = function () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel_outside');\n self.closePanel(self);\n };\n }\n\n if (self.closeButton) {\n self.closeButton.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel');\n self.closePanel(self);\n };\n }\n\n if (self.permissionGuideClose) {\n self.permissionGuideClose.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_permission_close');\n self.closeAudio.play();\n self.hidePermissionGuide(self);\n };\n }\n /* Recognition Events */\n\n\n self.recognition.onresult = function (event) {\n // The SpeechRecognitionEvent results property returns a SpeechRecognitionResultList object\n // The SpeechRecognitionResultList object contains SpeechRecognitionResult objects.\n // It has a getter so it can be accessed like an array\n // The first [0] returns the SpeechRecognitionResult at the last position.\n // Each SpeechRecognitionResult object contains SpeechRecognitionAlternative objects that contain individual results.\n // These also have getters so they can be accessed like arrays.\n // The second [0] returns the SpeechRecognitionAlternative at position 0.\n // We then return the transcript property of the SpeechRecognitionAlternative object\n // console.log('Confidence: ' + event.results[0][0].confidence);\n self.speechResult = event.results[0][0].transcript;\n /* Punctuation Handling: Check last character and strip it if necessary */\n\n self.handlePunctuation(self);\n\n if (self.speechText) {\n self.speechText.innerText = self.speechResult;\n }\n\n if (self.searchBoxQuery) {\n self.searchBoxQuery.value = self.speechResult;\n }\n\n self.resultAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideRetryLink(self);\n\n if (self.searchBoxForm) {\n var inputFr = self.searchBoxForm.querySelector('[name=fr]');\n var inputFr2 = self.searchBoxForm.querySelector('[name=fr2]');\n\n if (inputFr && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr) {\n inputFr.value = config.searchBox.params.fr;\n inputFr.disabled = false; // for homepage case\n }\n\n if (inputFr2 && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr2) {\n inputFr2.value = config.searchBox.params.fr2;\n inputFr2.disabled = false; // for homepage case\n }\n\n self.searchBoxForm.submit();\n }\n }, 1000);\n };\n\n self.recognition.onspeechstart = function\n /*event*/\n () {// Fired when speech starts\n };\n\n self.recognition.onspeechend = function () {\n // Fired when speech ends\n self.recognition.stop();\n };\n\n self.recognition.onerror = function\n /*event*/\n () {\n // console.log('Error occurred in recognition: ' + event.error);\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_error');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n };\n\n self.recognition.onaudiostart = function\n /*event*/\n () {\n // Fired when the user agent has started to capture audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.add(\"listening\");\n }\n };\n\n self.recognition.onaudioend = function\n /*event*/\n () {\n // Fired when the user agent has finished capturing audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n }\n };\n\n self.recognition.onsoundstart = function\n /*event*/\n () {\n // Fired when any sound — recognisable speech or not — has been detected.\n self.hideTrending(self);\n self.noSpeech = false;\n\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n self.speechButtonContainer.classList.add(\"speaking\");\n }\n };\n\n self.recognition.onsoundend = function\n /*event*/\n () {\n // Fired when no sound present\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"speaking\");\n }\n };\n\n self.recognition.onstart = function\n /*event*/\n () {\n // Fired when the speech recognition service has begun listening\n self.recognitionInit(self);\n self.startRecognition(self);\n };\n\n self.recognition.onend = function\n /*event*/\n () {\n // Fired when the speech recognition service has disconnected.\n self.isRecognitionStart = false;\n\n if (self.noSpeech == false && self.speechResult == '') {\n // No match: Fired when the speech recognition can't recognise speech\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_nomatch');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n }\n }; // trigger onReady event when initialized\n\n\n if (document && document.dispatchEvent) {\n document.dispatchEvent(new Event('VOICE_JS_READY'));\n }\n }\n } // static members\n\n\n VoiceSearch.I18n = I18n; // instance members\n\n VoiceSearch.prototype.renderPermissionGuide = function (self) {\n var tmpl = \"\\n

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte

    \".concat(self.i18n.t('search.voice.title_permission'), \"

    \\norte

    \").concat(self.i18n.t('search.voice.text_permission'), \"

    \\norte

    (Video) Inside The Billionaire Life Of Jeff Bezos

    \\norte

    \\norte

    \\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n document.body.appendChild(dom.body.children[0]);\n }; \n\n VoiceSearch.prototype.renderSpeechPanel = função (auto) {\n var tmpl = \"\\n

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte\\n \\n\\norte\\norte\\norte\\norte

    \\norte

    \\norte

    \\norte\\norte\\norte\".concat(self.i18n.t('search.voice.recognition_retry'), \"\\norte

    \\norte

    \\norte

    \\norte

    \\norte

    \\norte

    (Video) Amazon’s City of The Future

    \\norte\").concat(self.i18n.t('search.voice.trending_title'), \"\\norte\\norte

    \\norte

    \\norte

    \\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n\n if (self && self.config && self.config.ui && self.config.ui.speechOverlay && self.config.ui.speechOverlay.disableBlur) {\n dom.body.children[0].classList.add('disable-blur-overlay');\n }\n\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.isBrowserSupported = function () {\n var isSupported = false;\n var self = this;\n var isChromium = Boolean(window.chrome);\n var isIOSChrome = /CriOS/.test(window.navigator.userAgent);\n var isEdge = /Edg\\//.test(window.navigator.userAgent);\n var isLegacyEdge = /Edge\\//.test(window.navigator.userAgent);\n var isOpera = Boolean(window.opr);\n var isBrave = Boolean(window.navigator.brave);\n var browsers = [// chrome\n {\n checkEnabled: function checkEnabled() {\n return true;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && !isIOSChrome && !isEdge && !isOpera && !isBrave;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }, // edge\n {\n checkEnabled: function checkEnabled() {\n return self && self.config && self.config.browsers && self.config.browsers.edge;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && isEdge && !isLegacyEdge;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }];\n\n for (var b = 0; b < browsers.length; b++) {\n var browser = browsers[b];\n\n if (browser && browser.checkBrowser && browser.checkBrowser() && browser.checkEnabled && browser.checkEnabled(self) && browser.checkAPI && browser.checkAPI()) {\n isSupported = true;\n }\n }\n\n return isSupported;\n };\n\n VoiceSearch.prototype.recognitionInit = function (self) {\n // Initialize flags for checking whether user is speaking or not\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = true;\n };\n\n VoiceSearch.prototype.showPermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hidePermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.getTrending = function (self) {\n // Call api for trending terms\n if (!self.config.enable_voice_trending || !self.trending) {\n return;\n }\n\n var url = \"https://api.search.yahoo.com/data/v3/search?appid=4d234a9d&market=\" + self.config.trending.market + \"&features=trending.voice\";\n self.ajaxReq(url, function (resBody) {\n if (!resBody || !resBody.response || !resBody.response.search || !resBody.response.search.results || !resBody.response.search.results[\"trending.voice\"]) {\n return;\n }\n\n var terms = resBody.response.search.results[\"trending.voice\"].data;\n self.showTrending(self, terms);\n });\n };\n\n VoiceSearch.prototype.showTrending = function (self, terms) {\n // params check\n if (!Array.isArray(terms) || terms.length < 3) {\n return;\n } // DOM check\n\n\n if (!self.trending || !self.termSpans || !self.termSpans[0]) {\n return;\n }\n\n var trendingLabel = '';\n trendingLabel += '\"' + terms[0].text + '\"' + ', ';\n trendingLabel += '\"' + terms[1].text + '\"' + ' ';\n trendingLabel += self.i18n.t('search.voice.trending_or') + ' ';\n trendingLabel += '\"' + terms[2].text + '\"';\n self.termSpans[0].innerText = trendingLabel;\n self.trending.classList.remove(\"hide\");\n };\n\n VoiceSearch.prototype.hideTrending = function (self) {\n if (!self.trending) {\n return;\n }\n\n self.trending.classList.add(\"hide\");\n };\n\n VoiceSearch.prototype.showRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.innerText = self.i18n.t('search.voice.recognition_retry');\n self.retryLink.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hideRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.startRecognition = function (self) {\n self.hidePermissionGuide(self);\n self.getTrending(self);\n self.startAudio.play();\n\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_start');\n win.setTimeout(function () {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_listening');\n }, 2000);\n }\n\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb-h\");\n self.speechPanel.classList.add(\"s2tb\");\n }\n\n self.hideRetryLink(self);\n };\n\n VoiceSearch.prototype.closePanel = function (self) {\n self.closeAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideTrending(self);\n self.hideRetryLink(self); // clean up esc listener\n\n doc.removeEventListener('keydown', self.onEscKeyDown);\n }, 100);\n };\n\n VoiceSearch.prototype.handlePunctuation = function (self) {\n if (self.speechResult.length > 0) {\n var lastChar = self.speechResult.charAt(self.speechResult.length - 1);\n\n if (lastChar === '.' || lastChar === '?' || lastChar === '。' || lastChar === '?') {\n self.speechResult = self.speechResult.slice(0, -1);\n }\n }\n };\n\n VoiceSearch.prototype.sendBeacon = function (actn, slk) {\n var ULT = win.YAHOO.ULT || {},\n SB = win.YAHOO.SB || {};\n\n if (ULT.beacon_click) {\n var trackParams = {\n _S: SB.config.i13n.spaceid,\n _I: SB.config.i13n.pvid,\n actn: actn,\n sec: 'search',\n slk: slk\n };\n win.YAHOO.ULT.beacon_click(trackParams);\n }\n };\n\n VoiceSearch.prototype.ajaxReq = function (url, callback) {\n var DONE_STATE = XMLHttpRequest.DONE || 4; // for IE-compatibility\n\n var xhr = new XMLHttpRequest();\n var responseRaw;\n var response; // CORS request only for IE8/IE9\n\n if (doc.documentMode && doc.documentMode < 10) {\n var xdr = new win.XDomainRequest();\n\n xdr.onload = function () {\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n return;\n } // CORS request for browers newer than IE9\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState !== DONE_STATE) {\n return;\n } // handle ajax response\n\n\n switch (xhr.status) {\n case 200:\n responseRaw = xhr.responseText;\n\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n\n break;\n\n default:\n // non-200 status code: retry or assume failure\n callback(response);\n break;\n }\n };\n\n xhr.open('GET', url, true);\n /* aync request */\n\n xhr.timeout = 10000;\n xhr.send();\n };\n\n if (!win.YAHOO) {\n win.YAHOO = {};\n }\n\n if (!win.YAHOO.Util) {\n win.YAHOO.Util = {};\n }\n\n win.YAHOO.Util.VoiceSearch = VoiceSearch;\n})(window, document);\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.js?")},"./src/lib/I18n.js":/*!*************************!*\ !*** ./src/lib/I18n.js ***! \*************************/function(module,__unused_webpack_exports,__webpack_require__){eval("module.exports = function () {\n var LANG_LIST = __webpack_require__(/*! ./lang_list.json */ \"./src/lib/lang_list.json\");\n\n var DEFAULT_LANG = 'default';\n\n var isValidLang = function isValidLang(lang) {\n return LANG_LIST.indexOf(lang) !== -1;\n }; // convert language strings to key-value map\n\n\n var buildStrMap = function buildStrMap(langStrings) {\n return langStrings.reduce(function (strMap, item) {\n strMap[item.id] = item.defaultMessage;\n return strMap;\n }, {});\n };\n\n var I18n = function I18n(options) {\n // initialize\n this.lang = isValidLang(options && options.lang) ? options.lang : DEFAULT_LANG;\n }; // static members\n\n\n I18n.langMap = {};\n I18n.langMap[DEFAULT_LANG] = buildStrMap(__webpack_require__(/*! ../lang/strings.json */ \"./src/lang/strings.json\"));\n\n I18n.setLangMap = function (lang, strings) {\n if (lang && strings) {\n I18n.langMap[lang] = buildStrMap(strings);\n }\n }; // instance members\n\n\n I18n.prototype = {\n t: function t(id) {\n switch (true) {\n // look up target language\n case Boolean(I18n.langMap && I18n.langMap[this.lang] && I18n.langMap[this.lang][id]):\n return I18n.langMap[this.lang][id];\n // fallback to default strings\n\n case Boolean(I18n.langMap && I18n.langMap[DEFAULT_LANG] && I18n.langMap[DEFAULT_LANG][id]):\n return I18n.langMap[DEFAULT_LANG][id];\n\n default:\n return '';\n }\n }\n };\n return I18n;\n}();\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/lib/I18n.js?")},"./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css":/*!*******************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css ***! \*******************************************************************************************************/function(module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, "/* Sprites */\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch1x-1620383531565.min.png);\\n background-repeat: no-repeat;\\n background-size: initial;\\n color: transparent;\\n}\\n/* Retina displays */\\n@media\\n only screen and (-webkit-min-device-pixel-ratio: 2),\\n only screen and (min-device-pixel-ratio: 2),\\n only screen and (min-resolution: 192dpi),\\n only screen and (min-resolution: 2dppx) {\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-size: 41px 330px;\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch2x-1620383531565.min.png)\\n}\\n }\\n\\n/* permission guide */\\n#spchp.permission-guide {\\n height: 100%;\\n width: 100%;\\n padding: 0;\\n opacity: 0.9;\\n background-color: #fff;\\n left: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spchp.permission-guide .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spchp.permission-guide .close-button:hover {\\n opacity: 1;\\n }\\n#spchp.permission-guide .guide {\\n margin: 191px 0 0 507px;\\n }\\n#spchp.permission-guide .guide .microphone {\\n height: 68px;\\n width: 52px;\\n border-right: 1px solid #232a31;\\n float: left;\\n }\\n#spchp.permission-guide .guide .microphone .sprite {\\n background-position: 0 -105px;\\n width: 28px;\\n height: 28px;\\n }\\n#spchp.permission-guide .guide .guide-text {\\n height: 68px;\\n margin-left: 24px;\\n float: left;\\n }\\n#spchp.permission-guide .guide .guide-text .title {\\n color: #232a31;\\n font-size: 32px;\\n font-family: HelveticaNeue-Bold;\\n line-height: 28px;\\n margin-bottom: 16px;\\n }\\n#spchp.permission-guide .guide .guide-text .text {\\n color: #232a31;\\n font-size: 16px;\\n line-height: 28px;\\n }\\n#spchp.permission-guide.hide {\\n display: none;\\n }\\n\\n/* speech panel */\\n#spch.spch {\\n background: #fff;\\n height: 100%;\\n left: 0;\\n opacity: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n visibility: hidden;\\n width: 100%;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spch.spch .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spch.spch .close-button:hover {\\n opacity: 1;\\n }\\n#spch.spch .spchc {\\n display: block;\\n height: 97px;\\n pointer-events: none;\\n }\\n#spch.spch .spchc .inner-container {\\n width: 100%;\\n height: 100%;\\n opacity: 0.1;\\n pointer-events: none;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch .spchc .inner-container .spch-control {\\n display: inline-block;\\n }\\n#spch.spch .spchc .inner-container .text-container {\\n float: left;\\n height: 91px;\\n overflow: hidden;\\n margin: 3px 0;\\n pointer-events: none;\\n width: calc(50% - 48.5px);\\n }\\n#spch.spch .spchc .inner-container .text-container p {\\n display: table-cell;\\n vertical-align: middle;\\n width: 550px;\\n height: 97px;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht {\\n font-weight: normal;\\n color: #6e7780;\\n line-height: normal;\\n opacity: 0;\\n pointer-events: none;\\n text-align: left;\\n -webkit-font-smoothing: antialiased;\\n transition: opacity 0.1s ease-in, margin-left 0.5s ease-in, top 0s linear 0.218s;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht.hide {\\n display: none;\\n }\\n#spch.spch .spchc .inner-container .text-container #spcht-retry {\\n color: #0f69ff;\\n cursor: pointer;\\n pointer-events: auto;\\n }\\n#spch.spch .spchc .inner-container .button-container {\\n pointer-events: none;\\n position: relative;\\n transition: transform 0.218s, opacity 0.218s ease-in;\\n }\\n#spch.spch .spchc .inner-container .button-container .button {\\n background-color: #fff;\\n border: 1px solid #eee;\\n border-radius: 100%;\\n bottom: 0;\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\\n cursor: pointer;\\n display: inline-block;\\n left: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n right: 0;\\n top: 0;\\n transition: background-color 0.218s, border 0.218s, box-shadow 0.218s;\\n }\\n#spch.spch .spchc .inner-container .button-container .button .microphone {\\n background-position: 0 -24px;\\n width: 41px;\\n height: 41px;\\n left: 27px;\\n pointer-events: none;\\n position: absolute;\\n top: 27px;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple {\\n position: absolute;\\n width: 136px;\\n height: 136px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n opacity: 0;\\n margin: -70px 0 0 -70px;\\n border-radius: 100px;\\n -webkit-animation: ripple 3.3s infinite;\\n animation: ripple 3.3s infinite;\\n background-color: #fff !important;\\n border: 2px solid #e0e4e9;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(2) {\\n -webkit-animation-delay: 1.1s;\\n animation-delay: 1.1s;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(3) {\\n -webkit-animation-delay: 2.2s;\\n animation-delay: 2.2s;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button {\\n background-color: #0f69ff;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button .microphone {\\n background-position: 0 -65px;\\n width: 40px;\\n height: 40px;\\n pointer-events: none;\\n position: absolute;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple {\\n background-size: 114px;\\n position: absolute;\\n width: 114px;\\n height: 114px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n margin: -57px 0 0 -57px;\\n -webkit-animation: speakingRipple1 2s infinite;\\n animation: speakingRipple1 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(2) {\\n background-size: 123px;\\n width: 123px;\\n height: 123px;\\n margin: -62px 0 0 -62px;\\n -webkit-animation: speakingRipple2 2s infinite;\\n animation: speakingRipple2 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(3) {\\n background-size: 136px;\\n width: 136px;\\n height: 136px;\\n margin: -68px 0 0 -68px;\\n -webkit-animation: speakingRipple3 2s infinite;\\n animation: speakingRipple3 2s infinite;\\n }\\n#spch.spch .spcho {\\n background-image: linear-gradient(to bottom, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 99%);\\n display: block;\\n min-width: 100%;\\n text-align: center;\\n top: 145px;\\n padding-bottom: 71px;\\n pointer-events: auto;\\n }\\n#spch.spch .spcho #spch-trending {\\n -webkit-animation: fadeIn 1s forwards;\\n animation: fadeIn 1s forwards;\\n opacity: 0;\\n }\\n#spch.spch .spcho #spch-trending .trending {\\n color: #6e7780;\\n display: inline-block;\\n font-size: 16px;\\n }\\n#spch.spch .spcho #spch-trending #trending-label {\\n font-weight: bold;\\n margin: 5px 5px;\\n }\\n#spch.spch .spcho #spch-trending.hide {\\n display: none;\\n }\\n#spch.spch.s2tb .spchc, #spch.spch.s2tb-h .spchc {\\n background: #fff;\\n box-sizing: border-box;\\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\\n height: auto;\\n margin: 0;\\n min-width: 100%;\\n overflow: hidden;\\n padding: 24px 115px;\\n }\\n#spch.spch.s2tb .spchc .inner-container, #spch.spch.s2tb-h .spchc .inner-container {\\n opacity: 1;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container, #spch.spch.s2tb-h .spchc .inner-container .text-container {\\n position: relative;\\n }\\n#spch.spch.s2tb {\\n background: rgba(255, 255, 255, 0);\\n opacity: 1;\\n visibility: visible;\\n transition-delay: 0s;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container {\\n transform: scale(1);\\n height: 97px;\\n right: 0;\\n top: 0;\\n width: 97px;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container .button {\\n opacity: 1;\\n pointer-events: auto;\\n position: absolute;\\n transform: scale(1);\\n transition-delay: 0;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container .spcht {\\n font-size: 24px;\\n margin-left: 0;\\n opacity: 1;\\n transition: opacity 0.5s ease-out, margin-left 0.5s ease-out;\\n }\\n#spch.spch.s2tb #spch-overlay {\\n -webkit-backdrop-filter: blur(10px);\\n backdrop-filter: blur(10px);\\n background-color: #fff;\\n height: 100%;\\n opacity: 0.9;\\n position: absolute;\\n top: 149px;\\n\\n /* spchc\'s height */\\n width: 100%;\\n }\\n#spch.spch.disable-blur-overlay #spch-overlay {\\n background-color: transparent;\\n -webkit-backdrop-filter: none;\\n backdrop-filter: none;\\n }\\n#spch.spch.disable-blur-overlay .spcho {\\n height: 27px;\\n padding-bottom: 20px;\\n background: #fff;\\n background-image: none;\\n box-shadow: 0 8px 6px -6px rgb(0 0 0 / 20%);\\n }\\n#spch.spch.s2tb-h {\\n background: rgba(255, 255, 255, 0);\\n opacity: 0;\\n visibility: hidden;\\n }\\n\\n@-webkit-keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@-webkit-keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n", ""]);\n// Exports\n/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js')},"./node_modules/css-loader/dist/runtime/api.js":/*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/function(module){eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return "@media ".concat(item[2], " {").concat(content, "}");\n }\n\n return content;\n }).join("");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === "string") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, ""]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = "".concat(mediaQuery, " and ").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack://@vzmi/voicejs/./node_modules/css-loader/dist/runtime/api.js?')},"./src/index.css":/*!***********************!*\ !*** ./src/index.css ***! \***********************/function(module,__unused_webpack_exports,__webpack_require__){eval('var api = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n var content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js!./index.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === \'string\') {\n content = [[module.id, content, \'\']];\n }\n\nvar options = {};\n\noptions.insert = "head";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?')},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":/*!****************************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! \****************************************************************************/function(module,__unused_webpack_exports,__webpack_require__){eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of

    FAQs

    How much does Amazon spend on Alexa? ›

    Amazon reportedly spent more than $10 billion on Alexa in 2022 amid falling sales. According to a new report, Amazon Alexa has cost Amazon $10 billion in expenses in 2022, with teams working on the smart speaker reportedly set for “mass layoffs” to lower costs.

    What are the dangers of Amazon Alexa? ›

    The location could potentially give anyone from the outside access to your Echo, and that could give access to your other smart home devices. For example, if your car is connected to your smart speaker, someone may be able to unlock and start it.

    Did Amazon stop supporting Alexa? ›

    The e-commerce giant announced its intention to close down Alexa.com in December 2021, and the service finally went dark on May 1, 2022.

    Is it true that Alexa is always listening? ›

    According to Florian Schaub, Assistant Professor in the University of Michigan School of Information, the microphones in these smart speakers “are always listening, but, by default, they are only listening for the 'wake word' or the activation keyword.” Since the whole purpose behind the device is to instantly respond ...

    Does Amazon profit from Alexa? ›

    Amazon sells its device at cost and with more than 10,000 employees working on the project, it is bleeding cash. Amazon's devices and services unit, which oversees Alexa, had an annual operating loss of $5 billion in recent years, according to a report earlier this month in the Wall Street Journal.

    How much does it cost a month to have an Alexa? ›

    A: There is no monthly fee to operate Alexa on Amazon Alexa-enabled devices. There are subscription services that you can buy which have monthly fees, such as Amazon Prime Services.

    Is it safe to own an Alexa? ›

    If a hacker can gain access to your home's Wi-Fi network, they can access to anything connected to it. However, we haven't found any reports of an Alexa device being hacked by someone with nefarious intentions. Over the years, researchers have hacked Alexa to find vulnerabilities bad actors could exploit.

    Does Alexa get hacked? ›

    Check Your Alexa Skills

    With the barrier to entry being so low, fake Alexa skills are quickly becoming the easiest way that hackers can access your Echo device. To avoid this, make sure to regularly check if you installed the correct and official applications on your device.

    Does Alexa drain your Internet? ›

    The bottom line on Alexa devices data usage

    Alexa clearly uses part of your home's bandwidth, even when you're not engaging with it. It typically isn't an issue unless you have a plan with low data limits. Most households shouldn't notice a difference unless they have multiple Echo Dots and smart home devices running.

    Why is Amazon retiring Alexa? ›

    Amazon has retired Alexa.com due to increasing competition and the cost of keeping the site operational is no longer worth the expense. Besides website owners being able to stack their properties up against competitors, they could also raise their advertising rates if their rankings were high enough.

    Who is replacing Alexa? ›

    Alexa.com Alternatives
    • 1: Ahrefs.
    • 2: Semrush.
    • 3: Similarweb.
    • 4: Moz.
    • 5: Serpstat.
    • 6: Ubersuggest.
    • 7: Spyfu.
    • 8: Kissmetrics.
    Sep 1, 2022

    Why is Amazon shut down? ›

    Amazon is closing, canceling or delaying warehouses across the U.S. after its pandemic expansion left it with too much space. Employees have been laid off at at least two delivery stations, or facilities that serve as the last stop before packages are dropped at shoppers' doorsteps.

    What happens if you say Alexa call 911? ›

    Unfortunately, you can't ask Alexa to call emergency services in most cases. In the US this is due to regulatory compliance — FCC rules require that 911-capable devices provide both location data and a callback number, which is theoretically feasible for Alexa, but something Amazon has opted not to implement.

    Does Alexa have a camera? ›

    Make video calls with the Echo camera

    With the camera on your device, you can make video calls to friends and family between any Echo Show, Echo Spot, the Alexa app, or Skype. Just sync your contacts in the Alexa app, and then ask Alexa to call any of your contacts by name.

    What country owns Alexa? ›

    Amazon Alexa, also known simply as Alexa, is a virtual assistant technology largely based on a Polish speech synthesiser named Ivona, bought by Amazon in 2013.
    ...
    Availability.
    DateCountry
    November 15, 2017Japan
    December 5, 2017Canada
    December 8, 2017Belgium
    Bolivia
    41 more rows

    Is Amazon losing money 2022? ›

    It was a brutal year for mega-cap tech stocks across the board. But 2022 was especially rough for Amazon . Shares of the e-retailer are wrapping up their worst year since the dot-com crash. The stock has tumbled 51% in 2022, marking the biggest decline since 2000, when it plunged 80%.

    What is Amazon's main source of profit? ›

    Key Takeaways

    Amazon makes money through its retail, subscriptions, and web services, among other channels. Retail remains Amazon's primary source of revenue, with online and physical stores together accounting for the biggest share.

    Can Alexa make coffee? ›

    Make coffee with Alexa

    You can also use an Alexa command to start up a coffee maker. All you need is a Mr. Coffee 10-Cup Smart Optimal Brew -- or a simple drip coffee maker, plus a smart switch.

    What is the difference between Alexa and Echo? ›

    Many people use the names Amazon Alexa and Amazon Echo interchangeably but there is a difference between the two. The short answer to this is: Alexa is just the AI service and not the product. On the other hand, Amazon echo is the physical device that is used to interact with Alexa.

    How much does Alexa unlimited cost? ›

    For $4.99/month, listen to Amazon Music Unlimited on a single Echo, Echo Dot, Echo Show, Echo Look, Amazon Tap, or Fire TV. Amazon Music Unlimited has a catalog of 100 million songs, so now you can ask Alexa to play just about any song or artist.

    What is the Alexa secret code? ›

    Say the following voice command to activate the Super Alexa Mode: “Alexa, up, up, down, down, left, right, left, right, B, A, start.” Super Alexa mode was merely Amazon's anticipated response to any gamers who would ask Alexa to use the Konami code.

    Can someone talk through my Alexa? ›

    You can make phone calls from an Echo device or the Alexa app, giving you hands-free options for calling family, friends, and other people. Alexa isn't the only one you can talk to through your Echo device. You can also make and receive voice calls with other people.

    Can you use Alexa as a spy camera? ›

    To use your Echo Show device as a security camera first make sure to turn on Home Monitoring directly on Echo Show 8. Start on your Echo Show Device: Swipe down from the top of screen and select Settings. Tap Camera and set the Home Monitoring toggle to On.

    What color does Alexa turn when listening? ›

    Cyan on blue

    A cyan spotlight on a blue ring means that Alexa is listening. The light ring glimmers briefly when Alexa has heard and is processing your request. A briefly glimmering blue light might also mean the device is receiving a software update.

    Does Alexa do anything without Wi-Fi? ›

    Why Alexa Does Not Work Without Wi-Fi. Amazon's Alexa is a device that strictly revolves around Wi-Fi to access everything from Google to various music-streaming services. Without Wi-Fi it is simply impossible to connect to these applications and features.

    Can you take your Alexa in the shower? ›

    A: It's neither waterproof nor water-resistant, but lots of people do have an Echo device in the bathroom.

    How much does Alexa add to electric bill? ›

    If you had your Echo blasting out tunes 24/7, that would still be less than $0.60 a month, or about $7 a year. However, it's worth bearing in mind just how many smart speakers and devices you have plugged in 24/7.

    How does Alexa monetize? ›

    With Amazon Associates on Alexa, skill builders can monetize the product recommendations they surface through Alexa Shopping Actions. They can do this by earning up to 10% commissions on customer purchases of qualifying products that are referred from their skills.

    Does Alexa charge for phone calls? ›

    Making calls with an Amazon Alexa Echo device is free. However, you do need wi-fi.

    Is there a monthly fee for Alexa does Alexa needs WIFI? ›

    There is no monthly fee involved in using Alexa. Once you purchase an Amazon Echo device, you have full access to Alexa's AI. Technically, you can even use the Alexa app on your smartphone for free without the purchase of a smart speaker.

    Does Alexa pay gas? ›

    You can say, “Alexa, pay for gas” using your car's Alexa-enabled device or the Alexa app at over 12,000 Exxon and Mobil stations in the U.S.

    How do I stop Alexa from taking money? ›

    Turn Alexa Voice Purchasing On or Off
    1. Open the Alexa app .
    2. Open More and select Settings.
    3. Select Account Settings.
    4. Select Voice Purchasing.
    5. Turn Voice Purchasing on or off.

    Does Alexa sell your conversations? ›

    We are not in the business of selling our customers' personal information and we do not share Alexa requests with advertising networks.”

    How does Alexa make free calls? ›

    Amazon Echo Dot (4th Gen)

    Alexa-to-Phone lets users make free phone calls to landlines and mobile numbers in the U.S., U.K., Canada, and Mexico simply by asking Alexa. You can use the feature to make outgoing calls, but Alexa won't field incoming calls or dial 911 unless you link Alexa with a mobile carrier.

    Videos

    1. How Amazon Tried To Get Shoppers To Buy Less So It Could Catch Up
    (CNBC)
    2. TM News 52 - Bored Alexa, Let's Go Brandon, Life On Venus, IBS Microplastics, Miracle Microbe...
    (Troubled Minds Media)
    3. The Untold Truth Of Jeff Bezos
    (Nicki Swift)
    4. Amazon HQ2 Is Exactly The Scam I Predicted
    (MoFreedomFoundation)
    5. Amazon Fire TV Cube: Lets give them something to talk a-box (The 3:59, Ep. 410)
    (CNET)
    6. Tech Trends: If You're Not in a Hurry, You're Too Late - Howard Tullman
    (MoneyShow)

    References

    Top Articles
    Latest Posts
    Article information

    Author: Geoffrey Lueilwitz

    Last Updated: 07/10/2023

    Views: 6275

    Rating: 5 / 5 (60 voted)

    Reviews: 91% of readers found this page helpful

    Author information

    Name: Geoffrey Lueilwitz

    Birthday: 1997-03-23

    Address: 74183 Thomas Course, Port Micheal, OK 55446-1529

    Phone: +13408645881558

    Job: Global Representative

    Hobby: Sailing, Vehicle restoration, Rowing, Ghost hunting, Scrapbooking, Rugby, Board sports

    Introduction: My name is Geoffrey Lueilwitz, I am a zealous, encouraging, sparkling, enchanting, graceful, faithful, nice person who loves writing and wants to share my knowledge and understanding with you.