記事本文自動読み上げツール
by
laiso
2022-09-10 [2022/09/10 18:13:06]
<p>タグの多いDIV要素を探して https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API で読み上げます
@@ -3,12 +3,16 @@
* @description <p>タグの多いDIV要素を探して https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API で読み上げます
* @include http://*
* @license MIT License
- * @require
+ * @require https://raw.githubusercontent.com/mozilla/readability/master/Readability.js
+ * @javascript_url
+ * @private
*/
let elm = Array.from(document.querySelectorAll('div'))
.filter(elm => elm.children.length>0)
.reduce((max, elm) => Array.from(elm.children).filter(c=>c.tagName === 'P').reduce((n, p)=> n + p.textContent.length, 0) > Array.from(max.children).filter(c=>c.tagName === 'P').reduce((n, p)=> n + p.textContent.length, 0) ? elm : max);
-let utterance = new SpeechSynthesisUtterance(elm.textContent.trim());
+
+const article = new Readability(window.document).parse();
+const utterance = new SpeechSynthesisUtterance(article.textContent.trim());
utterance.lang='ja';
speechSynthesis.speak(utterance);
/*
* @title 記事本文自動読み上げツール
* @description <p>タグの多いDIV要素を探して https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API で読み上げます
* @include http://*
* @license MIT License
* @require https://raw.githubusercontent.com/mozilla/readability/master/Readability.js
* @javascript_url
* @private
*/
let elm = Array.from(document.querySelectorAll('div'))
.filter(elm => elm.children.length>0)
.reduce((max, elm) => Array.from(elm.children).filter(c=>c.tagName === 'P').reduce((n, p)=> n + p.textContent.length, 0) > Array.from(max.children).filter(c=>c.tagName === 'P').reduce((n, p)=> n + p.textContent.length, 0) ? elm : max);
const article = new Readability(window.document).parse();
const utterance = new SpeechSynthesisUtterance(article.textContent.trim());
utterance.lang='ja';
speechSynthesis.speak(utterance);
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。