diff --git a/templates/admin.html b/templates/admin.html index 52ccb1b..c90bfb1 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -400,6 +400,9 @@ }); // Form submit const form = document.getElementById('ttsForm'); + const ipAddress = "{{ params.ip_address }}"; + const portNumber = "{{ params.port_number }}"; + const baseurl = `http://${ipAddress}:${portNumber}`; form.addEventListener('submit', async (event) => { event.preventDefault(); @@ -411,6 +414,7 @@ // Get and clean the text input from the textarea let textInput = formData.get('text'); let cleanedText = textInput.replace(/ \- | \– /g, ' '); // Replace hyphens + cleanedText = cleanedText.replace(/%/g, " percent"); cleanedText = cleanedText.replace(/([!?.])\1+/g, '$1'); cleanedText = cleanedText.replace(/[^a-zA-Z0-9\s\.,;:!?\-\'"]/g, ''); cleanedText = cleanedText.replace(/\n+/g, ' '); @@ -425,7 +429,7 @@ if (formData.get('streaming') === 'true') { // For streaming, update the audio player src const searchParams = new URLSearchParams(formData).toString(); - audioPlayer.src = "/tts-demo-request?" + searchParams; + audioPlayer.src = baseurl + "/tts-demo-request?" + searchParams; audioPlayer.load(); // Reload the audio player } else { // For non-streaming, send a POST request @@ -440,7 +444,7 @@ // Update output file path and audio player source const outputFilePath = document.getElementById('outputFilePath'); outputFilePath.textContent = result.output_file_path; - audioPlayer.src = `/audio/${result.output_file_path}`; + audioPlayer.src = baseurl + `/audio/${result.output_file_path}`; audioPlayer.load(); // Reload the audio player } }); @@ -473,7 +477,7 @@ is 22050Hz, Mono, 16 bit and between 6 to 30 seconds long, though 8 to 10 seconds is usually - good enough. The model can handle up to a 30 second samples, however I've not noticed any improvement in voice + good enough. The model can handle up to 30 second samples, however I've not noticed any improvement in voice output from a much longer clips.

You want to find a nice clear selection of audio, so lets say diff --git a/templates/word_addin/1995fcd6d39cade7d871.js b/templates/word_addin/1995fcd6d39cade7d871.js new file mode 100644 index 0000000..b18cd4a --- /dev/null +++ b/templates/word_addin/1995fcd6d39cade7d871.js @@ -0,0 +1,2 @@ +/*! For license information please see 1995fcd6d39cade7d871.js.LICENSE.txt */ +function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _regeneratorRuntime(){"use strict";_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new G(n||[]);return o(a,"_invoke",{value:S(t,r,c)}),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function w(){}var x={};l(x,a,(function(){return this}));var E=Object.getPrototypeOf,b=E&&E(E(B([])));b&&b!==r&&n.call(b,a)&&(x=b);var T=w.prototype=m.prototype=Object.create(x);function _(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function L(t,e){function r(o,i,a,c){var u=s(t[o],t,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==_typeof(f)&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){l.value=t,a(l)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function S(e,r,n){var o=h;return function(i,a){if(o===y)throw new Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=I(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=s(e,r,n);if("normal"===l.type){if(o=n.done?d:p,l.arg===v)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=s(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function G(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function B(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:B(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function asyncGeneratorStep(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){asyncGeneratorStep(i,n,o,a,c,"next",t)}function c(t){asyncGeneratorStep(i,n,o,a,c,"throw",t)}a(void 0)}))}}Office.onReady((function(t){t.host===Office.HostType.Word&&(loadVoices(),document.getElementById("sendTextButton").onclick=sendTextToTTS)}));var audio=document.getElementById("audioSource"),volumeControl=document.getElementById("volumeControl");function loadVoices(){var t=document.getElementById("serverIP").value,e=document.getElementById("portNumber").value,r="http://".concat(t,":").concat(e,"/api/voices");fetch(r).then((function(t){return t.json()})).then((function(t){var e=document.getElementById("voice");t.voices.forEach((function(t){var r=document.createElement("option");r.value=t,r.textContent=t,e.appendChild(r)}))})).catch((function(t){return console.error("Error fetching voices:",t)}))}function sendTextToTTS(){return _sendTextToTTS.apply(this,arguments)}function _sendTextToTTS(){return _sendTextToTTS=_asyncToGenerator(_regeneratorRuntime().mark((function t(){return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Word.run(function(){var t=_asyncToGenerator(_regeneratorRuntime().mark((function t(e){var r,n,o,i,a,c,u,l,f,s;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(r=e.document.getSelection()).load("text"),t.next=4,e.sync();case 4:n=r.text,o=document.getElementById("voice"),i=o.value,a=document.getElementById("language"),c=a.value,u=document.getElementById("serverIP").value,l=document.getElementById("portNumber").value,f=document.getElementById("audioSource"),s="text=".concat(n,"&voice=").concat(i,"&language=").concat(c,"&output_file=").concat("demo_output.wav","&streaming=").concat("true"),f.src="http://".concat(u,":").concat(l,"/tts-demo-request?").concat(s),f.load();case 17:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){console.error("Error:",t)}));case 2:case"end":return t.stop()}}),t)}))),_sendTextToTTS.apply(this,arguments)}volumeControl.addEventListener("input",(function(){audio.volume=volumeControl.value})); \ No newline at end of file diff --git a/templates/word_addin/1995fcd6d39cade7d871.js.LICENSE.txt b/templates/word_addin/1995fcd6d39cade7d871.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/templates/word_addin/1995fcd6d39cade7d871.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/templates/word_addin/1fda685b81e1123773f6.css b/templates/word_addin/1fda685b81e1123773f6.css new file mode 100644 index 0000000..5f78c16 --- /dev/null +++ b/templates/word_addin/1fda685b81e1123773f6.css @@ -0,0 +1,80 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. + * See LICENSE in the project root for license information. + */ + + html, + body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + } + + ul { + margin: 0; + padding: 0; + } + + .ms-welcome__header { + padding: 20px; + padding-bottom: 30px; + padding-top: 100px; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + align-items: center; + } + + .ms-welcome__main { + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + align-items: center; + -webkit-flex: 1 0 0; + flex: 1 0 0; + padding: 10px 20px; + } + + .ms-welcome__main > h2 { + width: 100%; + text-align: center; + } + + .ms-welcome__features { + list-style-type: none; + margin-top: 20px; + } + + .ms-welcome__features.ms-List .ms-ListItem { + padding-bottom: 20px; + display: -webkit-flex; + display: flex; + } + + .ms-welcome__features.ms-List .ms-ListItem > .ms-Icon { + margin-right: 10px; + } + + .ms-welcome__action.ms-Button--hero { + margin-top: 30px; + } + +.ms-Button.ms-Button--hero .ms-Button-label { + color: #0078d7; +} + +.ms-Button.ms-Button--hero:hover .ms-Button-label, +.ms-Button.ms-Button--hero:focus .ms-Button-label{ + color: #005a9e; + cursor: pointer; +} + +b { + font-weight: bold; +} \ No newline at end of file diff --git a/templates/word_addin/AllTalk Word Add-in.pdf b/templates/word_addin/AllTalk Word Add-in.pdf new file mode 100644 index 0000000..3f117a2 Binary files /dev/null and b/templates/word_addin/AllTalk Word Add-in.pdf differ diff --git a/templates/word_addin/assets/icon-128.png b/templates/word_addin/assets/icon-128.png new file mode 100644 index 0000000..94e2021 Binary files /dev/null and b/templates/word_addin/assets/icon-128.png differ diff --git a/templates/word_addin/assets/icon-16.png b/templates/word_addin/assets/icon-16.png new file mode 100644 index 0000000..4ea5009 Binary files /dev/null and b/templates/word_addin/assets/icon-16.png differ diff --git a/templates/word_addin/assets/icon-32.png b/templates/word_addin/assets/icon-32.png new file mode 100644 index 0000000..f3b1580 Binary files /dev/null and b/templates/word_addin/assets/icon-32.png differ diff --git a/templates/word_addin/assets/icon-64.png b/templates/word_addin/assets/icon-64.png new file mode 100644 index 0000000..b01cf27 Binary files /dev/null and b/templates/word_addin/assets/icon-64.png differ diff --git a/templates/word_addin/assets/icon-80.png b/templates/word_addin/assets/icon-80.png new file mode 100644 index 0000000..b0654f3 Binary files /dev/null and b/templates/word_addin/assets/icon-80.png differ diff --git a/templates/word_addin/assets/logo-filled.png b/templates/word_addin/assets/logo-filled.png new file mode 100644 index 0000000..60c0f01 Binary files /dev/null and b/templates/word_addin/assets/logo-filled.png differ diff --git a/templates/word_addin/commands.html b/templates/word_addin/commands.html new file mode 100644 index 0000000..6f3a200 --- /dev/null +++ b/templates/word_addin/commands.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/word_addin/commands.js b/templates/word_addin/commands.js new file mode 100644 index 0000000..04513c3 --- /dev/null +++ b/templates/word_addin/commands.js @@ -0,0 +1,2 @@ +!function(){var e={};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),Office.onReady((function(){})),("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e.g?e.g:void 0).action=function(e){var n={type:Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,message:"Performed action.",icon:"Icon.80x80",persistent:!0};Office.context.mailbox.item.notificationMessages.replaceAsync("action",n),e.completed()}}(); +//# sourceMappingURL=commands.js.map \ No newline at end of file diff --git a/templates/word_addin/commands.js.map b/templates/word_addin/commands.js.map new file mode 100644 index 0000000..0f94cef --- /dev/null +++ b/templates/word_addin/commands.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commands.js","mappings":"YACA,IAAIA,EAAsB,CAAC,ECD3BA,EAAoBC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAXC,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCOxBC,OAAOC,SAAQ,WACb,KAuBuB,oBAATC,KACVA,KACkB,oBAAXH,OACPA,YACkB,IAAXI,EAAAA,EACPA,EAAAA,OACAC,GAMJC,OA5BF,SAAgBC,GACd,IAAMC,EAAU,CACdC,KAAMR,OAAOS,aAAaC,4BAA4BC,qBACtDJ,QAAS,oBACTK,KAAM,aACNC,YAAY,GAIdb,OAAOc,QAAQC,QAAQC,KAAKC,qBAAqBC,aAAa,SAAUX,GAGxED,EAAMa,WACR,C","sources":["webpack://office-addin-taskpane-js/webpack/bootstrap","webpack://office-addin-taskpane-js/webpack/runtime/global","webpack://office-addin-taskpane-js/./src/commands/commands.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","/*\n * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n * See LICENSE in the project root for license information.\n */\n\n/* global global, Office, self, window */\n\nOffice.onReady(() => {\n // If needed, Office.js is ready to be called\n});\n\n/**\n * Shows a notification when the add-in command is executed.\n * @param event {Office.AddinCommands.Event}\n */\nfunction action(event) {\n const message = {\n type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,\n message: \"Performed action.\",\n icon: \"Icon.80x80\",\n persistent: true,\n };\n\n // Show a notification message\n Office.context.mailbox.item.notificationMessages.replaceAsync(\"action\", message);\n\n // Be sure to indicate when the add-in command function is complete\n event.completed();\n}\n\nfunction getGlobal() {\n return typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : undefined;\n}\n\nconst g = getGlobal();\n\n// The add-in command functions need to be available in global scope\ng.action = action;\n"],"names":["__webpack_require__","g","globalThis","this","Function","e","window","Office","onReady","self","global","undefined","action","event","message","type","MailboxEnums","ItemNotificationMessageType","InformationalMessage","icon","persistent","context","mailbox","item","notificationMessages","replaceAsync","completed"],"sourceRoot":""} \ No newline at end of file diff --git a/templates/word_addin/manifest.xml b/templates/word_addin/manifest.xml new file mode 100644 index 0000000..5d1117d --- /dev/null +++ b/templates/word_addin/manifest.xml @@ -0,0 +1,79 @@ + + + 68b6ad53-4f72-42a8-a971-a9643c2f409a + 1.0.0.0 + AllTalk + en-US + + + + + + + https://www.contoso.com + + + + + + + + ReadWriteDocument + + + + + + + + + +

AllTalk TTS +

AllTalk TTS

+
+






+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/templates/word_addin/taskpane.js b/templates/word_addin/taskpane.js new file mode 100644 index 0000000..3a6c0fc --- /dev/null +++ b/templates/word_addin/taskpane.js @@ -0,0 +1,3 @@ +/*! For license information please see taskpane.js.LICENSE.txt */ +!function(){var t={27091:function(t){"use strict";t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),e.hash&&(t+=e.hash),e.maybeNeedQuotes&&/[\t\n\f\r "'=<>`]/.test(t)?'"'.concat(t,'"'):t):t}},44944:function(t,e,r){"use strict";t.exports=r.p+"assets/logo-filled.png"},36076:function(t,e,r){"use strict";t.exports=r.p+"1995fcd6d39cade7d871.js"},60806:function(t,e,r){"use strict";t.exports=r.p+"1fda685b81e1123773f6.css"}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.m=t,r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&!t;)t=n[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t}(),r.b=document.baseURI||self.location.href,function(){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(){"use strict";e=function(){return n};var r,n={},o=Object.prototype,i=o.hasOwnProperty,c=Object.defineProperty||function(t,e,r){t[e]=r.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",f=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(r){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=e&&e.prototype instanceof w?e:w,i=Object.create(o.prototype),a=new k(n||[]);return c(i,"_invoke",{value:I(t,r,a)}),i}function p(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}n.wrap=h;var y="suspendedStart",v="suspendedYield",d="executing",m="completed",g={};function w(){}function b(){}function x(){}var E={};l(E,u,(function(){return this}));var L=Object.getPrototypeOf,_=L&&L(L(T([])));_&&_!==o&&i.call(_,u)&&(E=_);var j=x.prototype=w.prototype=Object.create(E);function O(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function S(e,r){function n(o,c,a,u){var f=p(e[o],e,c);if("throw"!==f.type){var s=f.arg,l=s.value;return l&&"object"==t(l)&&i.call(l,"__await")?r.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):r.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,u)}))}u(f.arg)}var o;c(this,"_invoke",{value:function(t,e){function i(){return new r((function(r,o){n(t,e,r,o)}))}return o=o?o.then(i,i):i()}})}function I(t,e,n){var o=y;return function(i,c){if(o===d)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw c;return{value:r,done:!0}}for(n.method=i,n.arg=c;;){var a=n.delegate;if(a){var u=P(a,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var f=p(t,e,n);if("normal"===f.type){if(o=n.done?m:v,f.arg===g)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=m,n.method="throw",n.arg=f.arg)}}}function P(t,e){var n=e.method,o=t.iterator[n];if(o===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=r,P(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=p(o,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,g;var c=i.arg;return c?c.done?(e[t.resultName]=c.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,g):c:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,g)}function B(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(B,this),this.reset(!0)}function T(e){if(e||""===e){var n=e[u];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,c=function t(){for(;++o=0;--o){var c=this.tryEntries[o],a=c.completion;if("root"===c.tryLoc)return n("end");if(c.tryLoc<=this.prev){var u=i.call(c,"catchLoc"),f=i.call(c,"finallyLoc");if(u&&f){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:T(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),g}},n}function r(t,e,r,n,o,i,c){try{var a=t[i](c),u=a.value}catch(t){return void r(t)}a.done?e(u):Promise.resolve(u).then(n,o)}function n(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var c=t.apply(e,n);function a(t){r(c,o,i,a,u,"next",t)}function u(t){r(c,o,i,a,u,"throw",t)}a(void 0)}))}}Office.onReady((function(t){var e,r,n;t.host===Office.HostType.Word&&(e=document.getElementById("serverIP").value,r=document.getElementById("portNumber").value,n="http://".concat(e,":").concat(r,"/api/voices"),fetch(n).then((function(t){return t.json()})).then((function(t){var e=document.getElementById("voice");t.voices.forEach((function(t){var r=document.createElement("option");r.value=t,r.textContent=t,e.appendChild(r)}))})).catch((function(t){return console.error("Error fetching voices:",t)})),document.getElementById("sendTextButton").onclick=c)}));var o=document.getElementById("audioSource"),i=document.getElementById("volumeControl");function c(){return a.apply(this,arguments)}function a(){return a=n(e().mark((function t(){return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Word.run(function(){var t=n(e().mark((function t(r){var n,o,i,c,a,u,f,s,l,h;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(n=r.document.getSelection()).load("text"),t.next=4,r.sync();case 4:o=n.text,i=document.getElementById("voice"),c=i.value,a=document.getElementById("language"),u=a.value,f=document.getElementById("serverIP").value,s=document.getElementById("portNumber").value,l=document.getElementById("audioSource"),h="text=".concat(o,"&voice=").concat(c,"&language=").concat(u,"&output_file=").concat("demo_output.wav","&streaming=").concat("true"),l.src="http://".concat(f,":").concat(s,"/tts-demo-request?").concat(h),l.load();case 17:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){console.error("Error:",t)}));case 2:case"end":return t.stop()}}),t)}))),a.apply(this,arguments)}i.addEventListener("input",(function(){o.volume=i.value}))}(),function(){"use strict";var t=r(27091),e=r.n(t),n=new URL(r(60806),r.b),o=new URL(r(44944),r.b),i=new URL(r(36076),r.b);e()(n),e()(o),e()(i)}()}(); +//# sourceMappingURL=taskpane.js.map \ No newline at end of file diff --git a/templates/word_addin/taskpane.js.LICENSE.txt b/templates/word_addin/taskpane.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/templates/word_addin/taskpane.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/templates/word_addin/taskpane.js.map b/templates/word_addin/taskpane.js.map new file mode 100644 index 0000000..8b0f00f --- /dev/null +++ b/templates/word_addin/taskpane.js.map @@ -0,0 +1 @@ +{"version":3,"file":"taskpane.js","mappings":"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","sources":["webpack://office-addin-taskpane-js/./node_modules/html-loader/dist/runtime/getUrl.js","webpack://office-addin-taskpane-js/webpack/bootstrap","webpack://office-addin-taskpane-js/webpack/runtime/compat get default export","webpack://office-addin-taskpane-js/webpack/runtime/define property getters","webpack://office-addin-taskpane-js/webpack/runtime/global","webpack://office-addin-taskpane-js/webpack/runtime/hasOwnProperty shorthand","webpack://office-addin-taskpane-js/webpack/runtime/publicPath","webpack://office-addin-taskpane-js/webpack/runtime/jsonp chunk loading","webpack://office-addin-taskpane-js/./src/taskpane/taskpane.js","webpack://office-addin-taskpane-js/./src/taskpane/taskpane.html"],"sourcesContent":["\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n }\n\n if (!url) {\n return url;\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = String(url.__esModule ? url.default : url);\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n }\n\n if (options.maybeNeedQuotes && /[\\t\\n\\f\\r \"'=<>`]/.test(url)) {\n return \"\\\"\".concat(url, \"\\\"\");\n }\n\n return url;\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t41: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","Office.onReady((info) => {\n if (info.host === Office.HostType.Word) {\n // Load voices when the add-in is ready\n loadVoices();\n\n // Set up the button click event for sending text to TTS\n document.getElementById('sendTextButton').onclick = sendTextToTTS;\n\n // Assuming you want to hide some initial message and show the app body\n // Ensure your HTML has elements that match these IDs or remove these lines if not needed.\n // document.getElementById(\"sideload-msg\").style.display = \"none\"; // Remove if not in HTML\n // document.getElementById(\"app-body\").style.display = \"flex\"; // Remove if not in HTML\n }\n});\n\nconst audio = document.getElementById('audioSource');\nconst volumeControl = document.getElementById('volumeControl');\n\nvolumeControl.addEventListener('input', () => {\n audio.volume = volumeControl.value;\n});\n\n\nfunction loadVoices() {\n // Get the user-input IP address and port number\n const ipAddress = document.getElementById('serverIP').value;\n const portNumber = document.getElementById('portNumber').value;\n const url = `http://${ipAddress}:${portNumber}/api/voices`;\n\n fetch(url)\n .then(response => response.json())\n .then(data => {\n const selectElement = document.getElementById('voice');\n data.voices.forEach(voice => {\n const option = document.createElement('option');\n option.value = voice;\n option.textContent = voice;\n selectElement.appendChild(option);\n });\n })\n .catch(error => console.error('Error fetching voices:', error));\n}\n\nasync function sendTextToTTS() {\n await Word.run(async (context) => {\n const range = context.document.getSelection();\n range.load(\"text\");\n await context.sync();\n\n const selectedText = range.text; // Or use a hardcoded string for testing\n // Retrieve the selected voice and language from the





<\" + \"script src=\\\"\" + ___HTML_LOADER_REPLACEMENT_2___ + \"\\\"><\" + \"/script> \";\n// Exports\nexport default code;"],"names":["module","exports","url","options","String","__esModule","default","hash","maybeNeedQuotes","test","concat","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","n","getter","d","a","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","this","Function","e","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","length","i","Error","replace","p","b","baseURI","self","href","_regeneratorRuntime","t","r","value","Symbol","iterator","c","asyncIterator","u","toStringTag","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","v","values","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","args","arguments","apply","err","Office","onReady","ipAddress","portNumber","host","HostType","Word","getElementById","fetch","response","json","data","selectElement","voices","voice","option","createElement","textContent","appendChild","console","onclick","sendTextToTTS","audio","volumeControl","_sendTextToTTS","_callee2","_context2","run","_ref","_callee","context","range","selectedText","voiceSelectElement","voiceSelected","languageSelectElement","languageSelected","audioPlayer","queryParams","_context","getSelection","load","sync","text","_x","addEventListener","volume","___HTML_LOADER_IMPORT_0___","URL","___HTML_LOADER_IMPORT_1___","___HTML_LOADER_IMPORT_2___"],"sourceRoot":""} \ No newline at end of file diff --git a/tts_server.py b/tts_server.py index 6153b47..af77c99 100644 --- a/tts_server.py +++ b/tts_server.py @@ -1052,6 +1052,13 @@ async def tts_generate( except Exception as e: return JSONResponse(content={"status": "generate-failure", "error": "An error occurred"}, status_code=500) + +############################# +#### Word Add-in Sharing #### +############################# +# Mount the static files from the 'word_addin' directory +app.mount('/api/word_addin', StaticFiles(directory='templates/word_addin'), name='word_addin') + ################################################### #### Webserver Startup & Initial model Loading #### ###################################################