From 5996f971232fd8056cd2514b196df44bffef0d34 Mon Sep 17 00:00:00 2001 From: BenAAndrew Date: Sun, 18 Jul 2021 10:07:57 +0100 Subject: [PATCH 1/2] Update Kindle advice --- application/static/datasource.html | 23 +++-- application/static/images/kindle_step3.PNG | Bin 0 -> 12723 bytes application/static/images/step2.PNG | Bin 4527 -> 0 bytes application/static/images/step4.PNG | Bin 2812 -> 0 bytes application/static/images/step5.PNG | Bin 1796 -> 0 bytes dataset/extension/main.js | 104 --------------------- dataset/extension/manifest.json | 10 -- dataset/extension/popup.html | 12 --- dataset/extension/style.css | 15 --- 9 files changed, 11 insertions(+), 153 deletions(-) create mode 100644 application/static/images/kindle_step3.PNG delete mode 100644 application/static/images/step2.PNG delete mode 100644 application/static/images/step4.PNG delete mode 100644 application/static/images/step5.PNG delete mode 100644 dataset/extension/main.js delete mode 100644 dataset/extension/manifest.json delete mode 100644 dataset/extension/popup.html delete mode 100644 dataset/extension/style.css diff --git a/application/static/datasource.html b/application/static/datasource.html index 123b48d..7d63b4b 100644 --- a/application/static/datasource.html +++ b/application/static/datasource.html @@ -7,32 +7,31 @@ To build a data source, firstly purchase a matching audible & kindle book (typic

Audible to audio

To convert an audible audio book to an audio file (.mp3) I use AaxAudioConverter. Here are the steps to install and use:

    -
  1. Download the Windows Audible app from the Microsoft store
  2. +
  3. Download and install the Windows Audible app from the Microsoft store
  4. Open the audible app and download the audiobook you wish to convert
  5. Download AaxAudioConverter
  6. Run the application and click "Add" in the top left +
  7. Select the audiobook you downloaded in the audible app
  8. Select "MP3" as the export format and "Single file per AAX file". Then click convert +

Kindle to text

-

To convert a kindle book to text file (.txt) I developed an extension found in the dataset folder of this project. Here are the steps to install and use:

+

To convert a kindle book to text file (.txt):

    -
  1. Go to chrome://extensions/ in chrome
  2. -
  3. Click on "Load unpacked" in the top left and select the "extension" folder in the dataset directory - -
  4. -
  5. Open the first page of the book you want to scrape in the amazon cloud reader
  6. -
  7. Open the extension & click "Scrape book". Wait for the reader to scan through all the pages - -
  8. -
  9. When the scanner has reached the last page, press "Export book". This will download the text fill needed for step 1 - +
  10. Download and install Kindle App version 1.17 (NOTE: It must be this version or earlier to work)
  11. +
  12. Open the kindle app and download the book you wish to convert
  13. +
  14. Go to "Documents\My Kindle Content" and find your kindle book (.azw file) +
    +
  15. +
  16. Upload this file to Convert to a txt
+

If this doesn't work you can also follow the DeDRM guide

{% endblock %} diff --git a/application/static/images/kindle_step3.PNG b/application/static/images/kindle_step3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fc09fb6c9cc91fe2e016658507e5e1e7a8d30669 GIT binary patch literal 12723 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 literal 0 HcmV?d00001 diff --git a/application/static/images/step2.PNG b/application/static/images/step2.PNG deleted file mode 100644 index bb68848665099d1aa4b5cbe1a254fc392e687460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4527 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 diff --git a/dataset/extension/main.js b/dataset/extension/main.js deleted file mode 100644 index 3b783e9..0000000 --- a/dataset/extension/main.js +++ /dev/null @@ -1,104 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - var convert = document.getElementById('scrapeBook'); - var download = document.getElementById('exportBook'); - - convert.addEventListener('click', function() { - function getBook(){ - function scrapePage(){ - function hashString(str){ - let hash = 0; - for (let i = 0; i < str.length; i++) { - hash += Math.pow(str.charCodeAt(i) * 31, str.length - i); - hash = hash & hash; // Convert to 32bit integer - } - return hash; - } - - var hashes = {}; - var content = []; - function addDiv(div){ - let hash = hashString(div.innerText); - if (hashes[hash] === undefined) { - hashes[hash] = true; - content.push(div.outerHTML); - } - } - - var appFrame = document.querySelector('#KindleReaderIFrame').contentDocument; - var contentFrames = Array.from(appFrame.querySelectorAll('iframe')).map(f => f.contentDocument); - Array.from(contentFrames[1].querySelectorAll('body > div')).forEach(addDiv); - appFrame.getElementById('kindleReader_pageTurnAreaRight').click(); - return content; - } - - function extractContent(s) { - var span = document.createElement('span'); - span.innerHTML = s; - return span.textContent || span.innerText; - } - - function getFooter(){ - var appFrame = document.querySelector('#KindleReaderIFrame').contentDocument; - return appFrame.getElementById("kindleReader_footer_message").innerHTML.split(" "); - } - - function getCurrentPageNumber(){ - var footer = getFooter(); - return parseInt(footer[3]); - } - - var footer = getFooter(); - var num_pages = parseInt(footer[5]); - var current_page = parseInt(footer[3]); - var book = ""; - var last_page = ""; - - function getPageText(){ - text = "\n\n"; - page = scrapePage(); - for (let i = 0; i < page.length; i++){ - text += extractContent(page[i]) + "\n"; - } - if(text != last_page){ - book += text; - last_page = text; - } - current_page = getCurrentPageNumber(); - if(current_page == num_pages){ - alert("Extracted "+num_pages+" pages"); - var data = document.getElementById("data"); - if(data){ - data.innerHTML = book; - } else { - document.body.innerHTML += ""+book+""; - } - return; - } - setTimeout(getPageText, 1000); - } - - getPageText(); - return text; - } - - chrome.tabs.executeScript({ - code: '(' + getBook + ')();' - }, (result) => { - console.log(result); - }); - }, false); - - download.addEventListener('click', function() { - chrome.tabs.executeScript({ - code: '(function getData(){ return document.getElementById("data").innerHTML; })();' - }, (result) => { - console.log(result); - var blob = new Blob([result], {type: "text/plain"}); - var url = URL.createObjectURL(blob); - chrome.downloads.download({ - url: url, - filename: "book.txt" - }); - }); - }, false); -}, false); diff --git a/dataset/extension/manifest.json b/dataset/extension/manifest.json deleted file mode 100644 index ee26cf6..0000000 --- a/dataset/extension/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "manifest_version": 2, - "name": "Kindle webscraper", - "description": "This extension scrapes kindle books for the purpose of voice cloning", - "version": "1.0", - "browser_action": { - "default_popup": "popup.html" - }, - "permissions": ["downloads", "https://read.amazon.co.uk/*", "https://read.amazon.com/*", "cookies"] -} diff --git a/dataset/extension/popup.html b/dataset/extension/popup.html deleted file mode 100644 index b3c93a6..0000000 --- a/dataset/extension/popup.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -

Kindle Converter

- - - - diff --git a/dataset/extension/style.css b/dataset/extension/style.css deleted file mode 100644 index 38050a3..0000000 --- a/dataset/extension/style.css +++ /dev/null @@ -1,15 +0,0 @@ -h1 { - font-family:Arial; - font-size:16px; -} -button { - background-color:#44c767; - border:1px solid #18ab29; - color:#ffffff; - font-family:Arial; - font-size:16px; - font-weight:bold; -} -button:hover { - background-color:#5cbf2a; -} From cb3fec32c552bdbc843466bb85c03a508be8c66d Mon Sep 17 00:00:00 2001 From: feng Date: Thu, 22 Jul 2021 11:45:13 +0800 Subject: [PATCH 2/2] fix synthesize.py --- synthesis/synthesis.md | 10 ++++++++-- synthesis/synthesize.py | 23 ++++++++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/synthesis/synthesis.md b/synthesis/synthesis.md index d69d856..3363df0 100644 --- a/synthesis/synthesis.md +++ b/synthesis/synthesis.md @@ -3,10 +3,16 @@ With trained model weights we can now implement the TTS app for our generated vo ## Arguments - **model_path**: The path to your generated model -- **waveglow_model_path**: The path to your waveglow model ([default found here](https://drive.google.com/file/d/1rpK8CzAAirq9sWZhe9nlfvxMF1dRgFbF/view)) +- **vocoder_type**: The vocoder type, `waveglow` or `hifigan` +- **vocoder_model_path**: The path to your vocoder model ([default waveglow model found here](https://drive.google.com/file/d/1rpK8CzAAirq9sWZhe9nlfvxMF1dRgFbF/view) [default hifigan model found here](https://drive.google.com/file/d/1qpgI41wNXFcH-iKq1Y42JlBC9j0je8PW/view?usp=sharing)) +- **hifigan_config_path**: The path to your hifigan config ([default higigan config found here](https://drive.google.com/file/d/1pAB2kQunkDuv6W5fcJiQ0CY8xcJKB22e/view?usp=sharing)) - **text**: Text you wish to synthesize - **graph_output_path (optional)**: Path to save alignment graph to - **audio_output_path (optional)**: Path to save generated audio to ## How to run -`python synthesize.py -m checkpoint_500000 -w waveglow_256channels_universal_v5.pt -t "Hello everyone, how are you?" -g graph.png -a audio.wav` +### Using vocoder waveglow +`python synthesize.py -vt waveglow -m checkpoint_500000 -vm waveglow_256channels_universal_v5.pt -t "Hello everyone, how are you?" -g graph.png -a audio.wav` + +### Using vocoder hifigan +`python synthesize.py -vt hifigan -m checkpoint_500000 -vm g_02500000 -hc config.json -t "Hello everyone, how are you?" -g graph.png -a audio.wav` diff --git a/synthesis/synthesize.py b/synthesis/synthesize.py index 5ef0b14..7fc5b89 100644 --- a/synthesis/synthesize.py +++ b/synthesis/synthesize.py @@ -2,10 +2,8 @@ import argparse import os import inflect import matplotlib.pyplot as plt -from training.tacotron2_model import Tacotron2 import torch import numpy as np -import glow # noqa import matplotlib from os.path import dirname, abspath import sys @@ -13,9 +11,11 @@ import sys sys.path.append(dirname(dirname(abspath(__file__)))) matplotlib.use("Agg") +import glow # noqa +from training.tacotron2_model import Tacotron2 from training.clean_text import clean_text from synthesis.waveglow import load_waveglow_model, generate_audio_waveglow -from synthesis.hifigan import generate_audio_hifigan +from synthesis.hifigan import load_hifigan_model, generate_audio_hifigan SYMBOLS = "_-!'(),.:;? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" @@ -126,19 +126,28 @@ if __name__ == "__main__": """Synthesize audio using model and vocoder""" parser = argparse.ArgumentParser(description="Synthesize audio using model and vocoder") parser.add_argument("-m", "--model_path", type=str, help="tacotron2 model path", required=True) - parser.add_argument("-w", "--waveglow_model_path", type=str, help="waveglow model path", required=True) + parser.add_argument("-vt", "--vocoder_type", type=str, help="vocoder type(waveglow or hifigan)", required=True) + parser.add_argument("-vm", "--vocoder_model_path", type=str, help="vocoder model path", required=True) + parser.add_argument("-hc", "--hifigan_config_path", type=str, help="hifigan_config path", required=False) parser.add_argument("-t", "--text", type=str, help="text to synthesize", required=True) parser.add_argument("-g", "--graph_output_path", type=str, help="path to save alignment graph to", required=False) parser.add_argument("-a", "--audio_output_path", type=str, help="path to save output audio to", required=False) args = parser.parse_args() assert os.path.isfile(args.model_path), "Model not found" - assert os.path.isfile(args.waveglow_model_path), "Waveglow model not found" + assert os.path.isfile(args.vocoder_model_path), "vocoder model not found" model = load_model(args.model_path) - waveglow_model = load_waveglow_model(args.waveglow_path) + vocoder_type = args.vocoder_type + vocoder_model = None + if vocoder_type == "hifigan": + assert os.path.isfile(args.hifigan_config_path), "hifigan config not found" + vocoder_model = load_hifigan_model(args.vocoder_model_path, args.hifigan_config_path) + elif vocoder_type == "waveglow": + vocoder_model = load_waveglow_model(args.vocoder_model_path) + inflect_engine = inflect.engine() synthesize( - model, args.text, inflect_engine, args.graph_output_path, args.audio_output_path, waveglow_model, "waveglow" + model, args.text, inflect_engine, args.graph_output_path, args.audio_output_path, vocoder_model, vocoder_type )