Make Python Talk Build Apps with Voice Control and Speech Recognition 1st Edition Mark Liu pdf download
Make Python Talk Build Apps with Voice Control and Speech Recognition 1st Edition Mark Liu pdf download
https://ebookmeta.com/product/make-python-talk-build-apps-with-
voice-control-and-speech-recognition-1st-edition-mark-liu/
https://ebookmeta.com/product/make-python-talk-mark-h-liu/
https://ebookmeta.com/product/make-python-talk-1st-edition-mark-
liu/
https://ebookmeta.com/product/lets-talk-python-young-coders-
build-software-meap-v06-pavel-anni/
https://ebookmeta.com/product/hot-times-william-r-cox/
Proceedings of the Third Berkeley Symposium on
Mathematical Statistics and Probability Volume 4
Contributions to Biology and Problems of Health
https://ebookmeta.com/product/proceedings-of-the-third-berkeley-
symposium-on-mathematical-statistics-and-probability-
volume-4-contributions-to-biology-and-problems-of-health/
https://ebookmeta.com/product/21st-century-economics-economic-
ideas-you-should-read-and-remember-bruno-s-frey-editor-christoph-
a-schaltegger-editor/
https://ebookmeta.com/product/integrated-earthquake-
simulation-1st-edition-m-hori/
https://ebookmeta.com/product/simulation-of-thermoelastic-
behaviour-of-spacecraft-structures-fundamentals-and-
recommendations-springer-aerospace-technology-simon-appel/
https://ebookmeta.com/product/dad-s-fireman-friend-1st-edition-
flora-ferrari/
Probability and Random Processes 4th Edition Geoffrey
R. Grimmett
https://ebookmeta.com/product/probability-and-random-
processes-4th-edition-geoffrey-r-grimmett/
MAKE
P Y T H O N TA L K
B U I L D A P P S W ITH V O I C E C O N T R O L
A N D S P E E C H R E C O G N I T I O N
MARK LIU
MAKE
P Y T H O N TA L K
Build Apps with
Vo i c e C o n t r o l a n d
Speech Recognition
b y Ma rk L i u
San Francisco
MAKE PYTHON TALK. Copyright © 2021 by Mark Liu.
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
For information on book distributors or translations, please contact No Starch Press, Inc. directly:
No Starch Press, Inc.
245 8th Street, San Francisco, CA 94103
phone: 1.415.863.9900; [email protected]
www.nostarch.com
No Starch Press and the No Starch Press logo are registered trademarks of No Starch Press, Inc. Other
product and company names mentioned herein may be the trademarks of their respective owners. Rather
than use a trademark symbol with every occurrence of a trademarked name, we are using the names only
in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of
the trademark.
Dedicated to Ivey, Andrew, and all
MS Finance students (past, present, and
future) at the University of Kentucky.
About the Author
Dr. Mark H. Liu is the founding director of the Master of Science in Finance
program at the University of Kentucky, where he holds the title of Associate
Professor of Finance with tenure. He has a Ph.D. in finance from Boston
College, and has been published in top finance journals, including Journal of
Financial Economics, Journal of Financial and Quantitative Analysis, and Journal
of Corporate Finance. Dr. Liu has more than 20 years of coding experience in
C++, SAS, Stata, and Python and runs Python workshops for Finance master
students at the University of Kentucky. He has also incorporated Python in
finance courses he is teaching.
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
ACKNOWLEDGMENTS XVII
INTRODUCTION XIX
2
PYTHON REFRESHER 13
Variables and Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Floats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Bools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Convert Variable Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Rules for Variable Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Loops and Conditional Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Conditional Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Loops in Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Loop Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
String Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
String Slicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
String Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Create a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Access Elements in a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Use a List of Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Add or Multiply Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
List Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Use Built-in Functions with Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
list() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Access Values in a Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Use Dictionary Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
How to Use Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Switch Keys and Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Combine Two Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Use Built-in Python Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Define Your Own Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Import Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Create Your Own Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Use Third-Party Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Create a Virtual Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Activate the Virtual Environment in Windows . . . . . . . . . . . . . . . . . . . . . . . . 46
Set Up Spyder in the Virtual Environment in Windows . . . . . . . . . . . . . . . . . . 47
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
x Contents in Detail
4
MAKE PYTHON TALK 73
Install the Text-to-Speech Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Test Your Text-to-Speech Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Repeat After Me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Customize the Speech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Retrieve Default Settings in the pyttsx3 Module in Windows . . . . . . . . . . . . . . 81
Adjust Speech Properties in the pyttsx3 Module in Windows . . . . . . . . . . . . . . 82
Customize the gTTS Module in Mac or Linux . . . . . . . . . . . . . . . . . . . . . . . . . 82
Build the Local mysay Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Create mysay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Import mysay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Build a Voice-Controlled Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Read a File Aloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5
SPEAKING APPLICATIONS 89
Create Your Self-Made Local Python Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
What’s a Python Package? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Create Your Own Python Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Test Your Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
More on Python Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Interactive Guess the Number Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Speaking Newscast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Scrape the News Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Add the Text-to-Speech Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Voice-Controlled Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Access Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Add Speech Recognition and Text to Speech . . . . . . . . . . . . . . . . . . . . . . . . 103
Voice-Activated Music Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Traverse Files in a Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Python, Play Selena Gomez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Python, Play a Country Song . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6
WEB SCRAPING PODCASTS, RADIOS, AND VIDEOS 111
A Primer on Web Scraping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
What Is HTML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Extract Information with Beautiful Soup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Scrape Live Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Voice-Activated Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Extract and Play Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Voice-Activate Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Contents in Detail xi
Voice-Activated Radio Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Install the selenium Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Control Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Voice-Activate Live Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Voice-Activated Videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7
BUILDING A VIRTUAL PERSONAL ASSISTANT 133
An Overview of Your VPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Download VPA Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Install the arrow Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Manage the Standby Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Create the Local Module mywakeup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Set Some Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Ask Your VPA to Set a Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Tell the Time with Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Build a Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Create the mytimer Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Set the Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Ask Your VPA to Set an Alarm Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Build an Alarm Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Create the Alarm Clock Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Set an Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Ask Your VPA to Tell a Joke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Create Your Joke List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Create a Joke Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Tell a Joke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Send Hands-Free Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Send Email with Written Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Create the Email Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Add the Email Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
8
KNOW-IT-ALL VPA 155
Get Answers from WolframAlpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Apply for an API Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Retrieve Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Explore Different Areas of Knowledge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Add a Know-It-All Functionality to Your VPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
What WolframAlpha Cannot Answer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Create the myknowall Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
A VPA That Can Answer (Almost) Any Question for You . . . . . . . . . . . . . . . . 165
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
10
TIC-TAC-TOE 189
Game Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Draw the Game Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Create the Game Pieces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
How Mouse Clicks Work in turtle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Convert Mouse Clicks to Cell Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Place Game Pieces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Determine Valid Moves, Wins, and Ties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Voice-Controlled Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11
CONNECT FOUR 207
Game Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Draw the Game Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
The Mouse-Click Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Drop a Disc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Animate the Falling Discs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Determine Valid Moves, Wins, and Ties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
The Voice-Controlled Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
End-of-Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
12
GUESS-THE-WORD GAME 227
Game Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Draw the Game Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
The Text Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Load the Coins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Guess the Letters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Determine Valid Guesses, Wins, and Losses . . . . . . . . . . . . . . . . . . . . . . . . 234
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.