{"_id":"@davi-ai/speechmarkdown-davi-js","_rev":"8-0433f1319f72859cedcc57a47c104a33","name":"@davi-ai/speechmarkdown-davi-js","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.1":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.1","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.1","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"837378a877de1fc55aac34461e1fcc06917c39cd","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.1.tgz","fileCount":3,"integrity":"sha512-R2xt8TvdKA8BcvZ/l+OtlyQP1/RLrHW6/VMD/hVPZ42hgPJIijgJcGxwgH+uhbtGwPMrPgHX5YkfXqQWJIANVg==","signatures":[{"sig":"MEYCIQCZEZcJxs0nyjS8puI/AuzX6gHIij0mLjgxftlO+0Gb/QIhAPpPVWzEOoPVVkIiMsi9MoTYz8CGJOqR5CgOVrDbDb8s","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15049},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"14087d2fbdc19ca34e0294e9311af6f185fab04b","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.5.1","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.1_1690382357211_0.3803227582181117","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.2","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.2","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"2513293e5ce5ec344adb2874082529a887756083","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.2.tgz","fileCount":51,"integrity":"sha512-hwTGsb/cb/B6DLZaa/yYI0QKPxNN/TouUusOUvFqdvimlbtfU4i77qZQ8Dr+hVqxHoK5bEqCs4L5/jGdjjdKrg==","signatures":[{"sig":"MEUCIQClyQIc3cS6XL7DZCLq2RLYvgt1ge/OLCfp/7uV8MpCrAIgLI/wBBd+WeGv6/e/LbAZ8NSHYr5T5M+rnTQrzyQWqfc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":225852},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"14087d2fbdc19ca34e0294e9311af6f185fab04b","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.5.1","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.16.0","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.2_1690382518211_0.5226325860067507","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.3","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.3","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"ba1aea5e65f5049b6de1aa0cf6977bcbb0ccc71a","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.3.tgz","fileCount":51,"integrity":"sha512-GDF4V9KIAiP8fhb9sceTZaxCVV/mAMbksKo5UIkp5AdNJzeB1Xhgm8NCKGLVB90rOTFNv7ZyZEklZiH9HzOEfQ==","signatures":[{"sig":"MEQCIFO28n6pj1vtcxutw2yloxxYL3wjZwrZ5zbJ0cAjjLvtAiBxuWW2BGexiK7Xttw8lIgPSUTpv1EG9LHswR/Gjgbeng==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":222621},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"51ebd6505b082a6af16414b400d7873be8bf2a69","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.6.7","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.3_1690458628472_0.5824036368783942","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.4","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.4","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"d9daac9651c9b02cef3c2d53211e71835c4d9a69","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.4.tgz","fileCount":51,"integrity":"sha512-QVp6RRXE1v1/Q5Q9gFsX9uGUDBQc9r8qD1R94KIgyaK7sKtr+X6R3lZiDuPQgkQqS1ZsVSwYg3/rSTl18OCLVg==","signatures":[{"sig":"MEUCID+lnhkWVbt0zbejYid0cxfiwZl0Vu4Jkbn4c3nLjml6AiEA93u645A4Ga9tB2xhAqRGms99034bIq6ImWh17ewPlMU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":217812},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"ac9097e536877149ab76adfd023b57d0828bf212","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.6.7","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.17.0","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.4_1690530442443_0.11321744228755448","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.5","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.5","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"ca197e91fbc019c2a9024d3d4a11fddd34041de1","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.5.tgz","fileCount":51,"integrity":"sha512-byejX/TvElh8UmkiuTaOKhs2lZaW7ZzqxO+8IFTIMH1WnxH5eWXbiO2mVmm9vs1IT4YE4Vr4ghCSIe1zzpKU0g==","signatures":[{"sig":"MEQCIDfgDsf/S5uW3kN07fUhe4a9Ee5GnUz6ybc6lNcAsoUKAiApsTVEp9UGJlmKw8NUmMTl30SVqYv5CdwsoYHxJ5ajkA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":218844},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"3bc7a40896c78a4d7dbcf9a6b6fbc67ee1662ada","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.8.1","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.5_1708699546860_0.5187664341190428","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@davi-ai/speechmarkdown-davi-js","version":"1.0.6","author":{"name":"DAVI"},"license":"MIT","_id":"@davi-ai/speechmarkdown-davi-js@1.0.6","maintainers":[{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"}],"dist":{"shasum":"ffe7a4adc5902d44d316452496045a3b8f05209f","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-1.0.6.tgz","fileCount":51,"integrity":"sha512-H+ysJQS1F/NpjU3RmN4OBCKzsSeusmzS2BhWckZOrnto3WT2As+b6bsDERS8/6/COulhMSU0wnXlzVDDUkzADg==","signatures":[{"sig":"MEYCIQDEpF8g+Ujq6WmoR3rlOtTIqga0vAO32K4H3WoKIoeMLgIhAONW282TzqnFbK0P6MckeFHXWlMz1wzJsER0EI52vK59","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":219711},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">= 10.13"},"gitHead":"9955fba2710ea9527b681dfb23907439f597cd8d","scripts":{"lint":"tslint -t stylish --project \"tsconfig.json\"","test":"jest --coverage","build":"tsc -p tsconfig.json","clean":"rimraf coverage dist tmp","test:watch":"jest --watch","build:watch":"tsc -w -p tsconfig.json","test:single":"jest -t $1","build:minify":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown | uglifyjs -cm -o ./dist.browser/speechmarkdown.min.js","build:browser":"browserify index.ts -p [tsify --noImplicityAny ] -s speechmarkdown -o ./dist.browser/speechmarkdown.js"},"_npmUser":{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},"repository":{"url":"none","type":"git"},"_npmVersion":"9.8.1","description":"Speech Markdown parser and formatters in TypeScript.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"tslib":"^1.10.0","myna-parser":"^2.5.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.9.0","acorn":">=5.7.4","tsify":"^4.0.1","lodash":"^4.17.19","rimraf":"^3.0.0","tslint":"^5.20.0","uglify":"^0.1.5","ts-jest":"^24.1.0","tsutils":"^3.17.1","prettier":"^1.18.2","clean-css":">=4.1.11","set-value":">=2.0.1","ts-dedent":"^1.1.0","uglify-js":"^3.6.0","browserify":"^16.5.0","mixin-deep":">=1.3.2","typescript":"^3.6.3","@types/jest":"^24.0.18","@types/node":"^12.7.11","node-notifier":">=8.0.1","underscore.string":">=3.3.5","tslint-config-prettier":"1.18.0","tslint-microsoft-contrib":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/speechmarkdown-davi-js_1.0.6_1709280214938_0.6244558957557984","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@davi-ai/speechmarkdown-davi-js","version":"2.0.1","author":{"name":"DAVI"},"license":"MIT","description":"Speech Markdown parser and formatters in TypeScript.","repository":{"type":"git","url":"none"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"vite build"},"devDependencies":{"@types/node":"^20","prettier":"^3.6.2","typescript":"^5.9.3","vite":"^6.3.6","vite-plugin-dts":"^4.5.4"},"dependencies":{"myna-parser":"^2.5.1"},"_id":"@davi-ai/speechmarkdown-davi-js@2.0.1","gitHead":"0eee22b5789f1b773e776e445eee81dc4f42b78b","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-SPZzVekzA3dRH65JF2j9Okenzij80E5YiT6yoYZ34vKhxI29SRMgQZtSvjs3xBh4XxCFGQLbKfyE0CkJtmnzQQ==","shasum":"e0086f54ab915199fe4d6acefdd849eb0b240120","tarball":"https://registry.npmjs.org/@davi-ai/speechmarkdown-davi-js/-/speechmarkdown-davi-js-2.0.1.tgz","fileCount":5,"unpackedSize":114334,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICqt6xuNYxs3jrxZw5+O2t9sagCunlIbSjHWSWmeSTNnAiEAj/TwHrG8xEZWFrlLVrA3gr+4e71InfA33LXnAhcLUtU="}]},"_npmUser":{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},"directories":{},"maintainers":[{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"genestadrien","email":"adrien.genest@davi.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/speechmarkdown-davi-js_2.0.1_1759845900883_0.5642531879700015"},"_hasShrinkwrap":false}},"time":{"created":"2023-07-26T14:39:17.103Z","modified":"2025-10-07T14:05:01.376Z","1.0.1":"2023-07-26T14:39:17.370Z","1.0.2":"2023-07-26T14:41:58.414Z","1.0.3":"2023-07-27T11:50:28.688Z","1.0.4":"2023-07-28T07:47:22.626Z","1.0.5":"2024-02-23T14:45:47.023Z","1.0.6":"2024-03-01T08:03:35.076Z","2.0.1":"2025-10-07T14:05:01.117Z"},"author":{"name":"DAVI"},"license":"MIT","repository":{"type":"git","url":"none"},"description":"Speech Markdown parser and formatters in TypeScript.","maintainers":[{"name":"sbiaudet","email":"sebastien.biaudet@davi.ai"},{"name":"guillaume.gay","email":"guillaume.gay@davi.ai"},{"name":"genestadrien","email":"adrien.genest@davi.ai"}],"readme":"[![TypeScript version][ts-badge]][typescript-34]\n[![Node.js version][nodejs-badge]][nodejs]\n[![MIT][license-badge]][LICENSE]\n\n# speechmarkdown-davi-js\n\nSpeech Markdown grammar, parser, and formatters for use with JavaScript.\n\nSupported platforms:\n* microsoft-azure\n\nPartial / no support:\n* amazon-alexa\n* amazon-polly\n* amazon-polly-neural\n* google-assistant\n* samsung-bixby\n\n# how to use\n\n```ts\nimport { SpeechMarkdown } from '@davi-ai/speechmarkdown-davi-js'\n\nconst options = {\n  platform: 'microsoft-azure',\n  includeSpeakTag: false,\n  globalVoiceAndLang: {\n    voice: 'en-US-JennyMultiLingualNeural',\n    lang: 'fr-FR'\n  }\n}\n\nconst speechMarkdownParser = new SpeechMarkdown(options)\n```\n\nYou can use multiple options, the most useful ones are :\n- platform : 'microsoft-azure' to generate SSML for azure neural voices\n- includeSpeakTag : add or not a <speak> tag at the beginning and </speak> tag at the ending.\n- globalVoiceAndLang: {\n    voice?: string,\n    lang?: string\n  } : added for microsoft voices and retorik-framework architecture. If you use a selected voice as main voice, put it in 'voice' field  \n  (format language-CULTURE-VoiceName (ex: en-US-GuyNeural, en-US-JennyNeural))\n  When using a multilingual voice (ex: JennyMultilingualNeural, if the text has to be spoken in a different language than the one of this language, add  \n  the 'lang' field with the desired language, formatted language-CULTURE (ex: fr-FR, en-US, de-DE, ...)\n\nWith theses parameters, you will receive a complete SSML string, excepted for the <speak> tag that has to be put manually around. We don't use the includeSpeakTag = true  \nparameter because it only puts a <speak> tag, and to use Microsoft voices we need a complete tag as follows :\n```ts  \n  <speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"https://www.w3.org/2001/mstts\" xmlns:emo=\"http://www.w3.org/2009/10/emotionml\" xml:lang=\"fr-FR\">\n```\n\n# available speechmarkdown tags\n\nThere are many different tags and most of them have restrictions. To get the current documentation, go to [docs.microsoft.com](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-synthesis-markup)\n\nOn 2023/07/28, the available tags are :\n- voice :\n  - (text to be read with that voice)[voice:\"voice name\"]\n  - the text can contain other tags except 'voice'\n  - the voice name can be as follows :\n    - language-CULTURE-VoiceName (ex: en-US-GuyNeural, en-US-JennyNeural))\n    - full Microsoft name (ex: Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural))\n  - example : ```(Bonjour, comment ça va ?)[voice:\"fr-FR-DeniseNeural\"] ```\n- lang :\n  - (text to be read in this language)[lang:\"language name\"]\n  - the text can contain other tags except 'voice' and 'lang'\n  - the lang name must be formatted as language-CULTURE (ex: fr-FR, en-US)\n  - example : ```(Bonjour, comment ça va ?)[lang:\"en-US\"] ```\n- break :\n  - [break time in seconds / milliseconds] or [break:\"strength value\"]\n  - strength values :\n    - none\n    - x-weak\n    - weak\n    - medium\n    - strong\n    - x-strong\n  - example : ```ts [break:\"strong\"] / [1s] / [250ms] ```\n- silence :\n  - [silence:\"type value\"]\n  - type and value are required\n  - type can be :\n    - Leading : beginning of text\n    - Tailing : end of text\n    - SentenceBoundary : between adjacent sentences\n  - value is an integer giving time in seconds or milliseconds, lower than 5000ms\n  - example : ```[silence:\"Leading 1s\"] ```\n- prosody :\n  - (text for which the prosody will be adjusted)[pitch:\"value\";contour=\"value\";range=\"value\";rate=\"value\";volume=\"value\"]\n  - you can use any of the modifiers below, from one to all of them\n  - modifiers :\n    - pitch\n    - contour\n    - range\n    - rate\n    - volume\n  - example : ```(this will be spoken slow and high)[rate:\"slow\";pitch:\"high\"]```\n- emphasis :\n  - [emphasis:\"value\"] or ++text will be strong++\n  - value can be / corresponding symbols around text :\n    - reduced / -text reduced-\n    - none / ~text without change\n    - moderate / +text stronger+\n    - strong / ++text much stronger++\n  - example : ```[emphasis:\"moderate\"] / +bonjour+```\n- say-as :\n  - (text to be said as)[modifier]\n  - modifier can be :\n    - address\n    - number\n    - characters\n    - fraction\n    - ordinal\n    - telephone\n    - time\n    - date\n  - example : ```I need this answer (ASAP)[characters] / My phyone number is (0386300000)[telephone]```\n- ipa :\n  - the International Phonetic Alphabet (ipa) allows you to force the pronunciation of a word / sentence\n  - example : ```I love (paintball)[ipa:\"peɪntbɔːl\"]```\n- emotions :\n  - [emotion:\"style role/styledegree\"]\n  - the style is mandatory, and depends on the voice speaking at that time (ex: fr-FR-DeniseNeural can only use 'sad' and 'cheerful' while ja-JP-NanamiNeural can use  \n    'chat', cheerful' and 'customerservice')\n  - role and styledegree are optionnal. Role is a string, while styledegree is a number. Note that 'role' is restricted to very few voices\n  - example : ```(It's so cool ! We are going to a great park today !)[voice:\"en-US-JennyNeural\";emotion:\"excited 2\"]```\n- audio :\n  - ![\"src\"]\n  - example : ![\"https://cdn.retorik.ai/retorik-framework/audiofiles/audiotest.mp3\"]\n- backgroundaudio :\n  - [backgroundaudio:\"src volume fadein fadeout\"]\n  - src mandatory, other fields optionnal but all fields on the left must be provided before using one on the right (ex: to use fadein,  \n      you must have provided a value for src and volume)\n  - only one backgroundaudio tag possible\n  - example : ```[backgroundaudio:\"https://cdn.retorik.ai/retorik-framework/audiofiles/audiotest.mp3 0.5 2000 1500\"]```\n- lexicon :\n  - [lexicon:\"url to the lexicon xml file\"]\n  - the lexicon file is restricted to one language (en-US, fr-FR, ...) so it won't be used if the voice uses another language\n  - it does nothing when using a multilingual voice (ex: JennyMultilingualNeural), even if the lang tag of this voice is the same as the one in the lexicon file\n  - the lexicon inputs are case-sensitive, for example 'hello' and 'Hello' must be treated separately\n  - example : ```[lexicon:\"https://cdn.retorik.ai/retorik-framework/lexicon-en-US.xml\"] Hi everybody ! BTW how are you today ?```\n- bookmark :\n  - [bookmark:\"bookmark text\"]\n  - example : ```Bookmark after city name : first Paris [bookmark:\"city1\"], then Berlin [bookmark:\"city2\"]```\n\n## License\nLicensed under the MIT. See the [LICENSE](https://github.com/speechmarkdown/speechmarkdown-js/blob/master/LICENSE) file for details.\n\n[ts-badge]: https://img.shields.io/badge/TypeScript-3.4-blue.svg\n[typescript]: https://www.typescriptlang.org/\n[typescript-34]: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html\n\n[nodejs-badge]: https://img.shields.io/badge/Node.js->=%2010.13-blue.svg\n[nodejs]: https://nodejs.org/dist/latest-v10.x/docs/api/\n\n[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license]: https://github.com/speechmarkdown/speechmarkdown-js/blob/master/LICENSE\n","readmeFilename":"README.md"}