Skip to content

Commit 4593d2e

Browse files
committed
Add SpeakEasy project
1 parent 87411ee commit 4593d2e

File tree

19 files changed

+1037
-1
lines changed

19 files changed

+1037
-1
lines changed

README

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
See http://useyourloaf.com for details
55

6-
This README last updated: 03-January-2014
6+
This README last updated: 08-January-2014
77
=======================================================================
88

99
+ INDEX
@@ -18,6 +18,7 @@
1818
Refresh - Using a UIRefreshControl in a table view controller
1919
RemindMe - Scheduling local notifications with UILocaNotification
2020
Restorer - State Preservation and Restoration
21+
SpeakEasy - Text to speech synthesis
2122
StaticTable - Using a storyboard to implement static table views
2223
Stepper - Example use of UIStepper control
2324
Styles - Using UIAppearance proxy to style UIKit controls

SpeakEasy/README

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=======================================================================
2+
SpeakEasy - Text to speech synthesis
3+
Version 1.0 08 January 2013 Initial version.
4+
=======================================================================
5+
6+
Demonstration of the AVSpeechSynthesizer and related classes to perform
7+
text to speech synthesis. Makes use of custom voices, pitch, rate and text
8+
highlighting.
9+
10+
For further details see the following blog post:
11+
http://useyourloaf.com/blog/2014/01/08/synthesized-speech-from-text.html
Lines changed: 324 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,324 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 46;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
5329C82318785C4F00B91692 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5329C82218785C4F00B91692 /* Foundation.framework */; };
11+
5329C82518785C4F00B91692 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5329C82418785C4F00B91692 /* CoreGraphics.framework */; };
12+
5329C82718785C4F00B91692 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5329C82618785C4F00B91692 /* UIKit.framework */; };
13+
5329C82D18785C4F00B91692 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5329C82B18785C4F00B91692 /* InfoPlist.strings */; };
14+
5329C82F18785C4F00B91692 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5329C82E18785C4F00B91692 /* main.m */; };
15+
5329C83318785C4F00B91692 /* UYLAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5329C83218785C4F00B91692 /* UYLAppDelegate.m */; };
16+
5329C83618785C4F00B91692 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5329C83418785C4F00B91692 /* Main.storyboard */; };
17+
5329C83918785C4F00B91692 /* UYLViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5329C83818785C4F00B91692 /* UYLViewController.m */; };
18+
5329C83B18785C4F00B91692 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5329C83A18785C4F00B91692 /* Images.xcassets */; };
19+
/* End PBXBuildFile section */
20+
21+
/* Begin PBXFileReference section */
22+
5329C81F18785C4F00B91692 /* SpeakEasy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpeakEasy.app; sourceTree = BUILT_PRODUCTS_DIR; };
23+
5329C82218785C4F00B91692 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
24+
5329C82418785C4F00B91692 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
25+
5329C82618785C4F00B91692 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
26+
5329C82A18785C4F00B91692 /* SpeakEasy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SpeakEasy-Info.plist"; sourceTree = "<group>"; };
27+
5329C82C18785C4F00B91692 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
28+
5329C82E18785C4F00B91692 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
29+
5329C83018785C4F00B91692 /* SpeakEasy-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SpeakEasy-Prefix.pch"; sourceTree = "<group>"; };
30+
5329C83118785C4F00B91692 /* UYLAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UYLAppDelegate.h; sourceTree = "<group>"; };
31+
5329C83218785C4F00B91692 /* UYLAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UYLAppDelegate.m; sourceTree = "<group>"; };
32+
5329C83518785C4F00B91692 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
33+
5329C83718785C4F00B91692 /* UYLViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UYLViewController.h; sourceTree = "<group>"; };
34+
5329C83818785C4F00B91692 /* UYLViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UYLViewController.m; sourceTree = "<group>"; };
35+
5329C83A18785C4F00B91692 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
36+
5329C84118785C4F00B91692 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
37+
5386150B187DC41B00FA2AF9 /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
38+
/* End PBXFileReference section */
39+
40+
/* Begin PBXFrameworksBuildPhase section */
41+
5329C81C18785C4F00B91692 /* Frameworks */ = {
42+
isa = PBXFrameworksBuildPhase;
43+
buildActionMask = 2147483647;
44+
files = (
45+
5329C82518785C4F00B91692 /* CoreGraphics.framework in Frameworks */,
46+
5329C82718785C4F00B91692 /* UIKit.framework in Frameworks */,
47+
5329C82318785C4F00B91692 /* Foundation.framework in Frameworks */,
48+
);
49+
runOnlyForDeploymentPostprocessing = 0;
50+
};
51+
/* End PBXFrameworksBuildPhase section */
52+
53+
/* Begin PBXGroup section */
54+
5329C81618785C4F00B91692 = {
55+
isa = PBXGroup;
56+
children = (
57+
5386150B187DC41B00FA2AF9 /* README */,
58+
5329C82818785C4F00B91692 /* SpeakEasy */,
59+
5329C82118785C4F00B91692 /* Frameworks */,
60+
5329C82018785C4F00B91692 /* Products */,
61+
);
62+
sourceTree = "<group>";
63+
};
64+
5329C82018785C4F00B91692 /* Products */ = {
65+
isa = PBXGroup;
66+
children = (
67+
5329C81F18785C4F00B91692 /* SpeakEasy.app */,
68+
);
69+
name = Products;
70+
sourceTree = "<group>";
71+
};
72+
5329C82118785C4F00B91692 /* Frameworks */ = {
73+
isa = PBXGroup;
74+
children = (
75+
5329C82218785C4F00B91692 /* Foundation.framework */,
76+
5329C82418785C4F00B91692 /* CoreGraphics.framework */,
77+
5329C82618785C4F00B91692 /* UIKit.framework */,
78+
5329C84118785C4F00B91692 /* XCTest.framework */,
79+
);
80+
name = Frameworks;
81+
sourceTree = "<group>";
82+
};
83+
5329C82818785C4F00B91692 /* SpeakEasy */ = {
84+
isa = PBXGroup;
85+
children = (
86+
5329C83118785C4F00B91692 /* UYLAppDelegate.h */,
87+
5329C83218785C4F00B91692 /* UYLAppDelegate.m */,
88+
5329C83418785C4F00B91692 /* Main.storyboard */,
89+
5329C83718785C4F00B91692 /* UYLViewController.h */,
90+
5329C83818785C4F00B91692 /* UYLViewController.m */,
91+
5329C83A18785C4F00B91692 /* Images.xcassets */,
92+
5329C82918785C4F00B91692 /* Supporting Files */,
93+
);
94+
path = SpeakEasy;
95+
sourceTree = "<group>";
96+
};
97+
5329C82918785C4F00B91692 /* Supporting Files */ = {
98+
isa = PBXGroup;
99+
children = (
100+
5329C82A18785C4F00B91692 /* SpeakEasy-Info.plist */,
101+
5329C82B18785C4F00B91692 /* InfoPlist.strings */,
102+
5329C82E18785C4F00B91692 /* main.m */,
103+
5329C83018785C4F00B91692 /* SpeakEasy-Prefix.pch */,
104+
);
105+
name = "Supporting Files";
106+
sourceTree = "<group>";
107+
};
108+
/* End PBXGroup section */
109+
110+
/* Begin PBXNativeTarget section */
111+
5329C81E18785C4F00B91692 /* SpeakEasy */ = {
112+
isa = PBXNativeTarget;
113+
buildConfigurationList = 5329C85118785C4F00B91692 /* Build configuration list for PBXNativeTarget "SpeakEasy" */;
114+
buildPhases = (
115+
5329C81B18785C4F00B91692 /* Sources */,
116+
5329C81C18785C4F00B91692 /* Frameworks */,
117+
5329C81D18785C4F00B91692 /* Resources */,
118+
);
119+
buildRules = (
120+
);
121+
dependencies = (
122+
);
123+
name = SpeakEasy;
124+
productName = SpeakEasy;
125+
productReference = 5329C81F18785C4F00B91692 /* SpeakEasy.app */;
126+
productType = "com.apple.product-type.application";
127+
};
128+
/* End PBXNativeTarget section */
129+
130+
/* Begin PBXProject section */
131+
5329C81718785C4F00B91692 /* Project object */ = {
132+
isa = PBXProject;
133+
attributes = {
134+
CLASSPREFIX = UYL;
135+
LastUpgradeCheck = 0500;
136+
ORGANIZATIONNAME = "Keith Harrison";
137+
};
138+
buildConfigurationList = 5329C81A18785C4F00B91692 /* Build configuration list for PBXProject "SpeakEasy" */;
139+
compatibilityVersion = "Xcode 3.2";
140+
developmentRegion = English;
141+
hasScannedForEncodings = 0;
142+
knownRegions = (
143+
en,
144+
Base,
145+
);
146+
mainGroup = 5329C81618785C4F00B91692;
147+
productRefGroup = 5329C82018785C4F00B91692 /* Products */;
148+
projectDirPath = "";
149+
projectRoot = "";
150+
targets = (
151+
5329C81E18785C4F00B91692 /* SpeakEasy */,
152+
);
153+
};
154+
/* End PBXProject section */
155+
156+
/* Begin PBXResourcesBuildPhase section */
157+
5329C81D18785C4F00B91692 /* Resources */ = {
158+
isa = PBXResourcesBuildPhase;
159+
buildActionMask = 2147483647;
160+
files = (
161+
5329C83B18785C4F00B91692 /* Images.xcassets in Resources */,
162+
5329C82D18785C4F00B91692 /* InfoPlist.strings in Resources */,
163+
5329C83618785C4F00B91692 /* Main.storyboard in Resources */,
164+
);
165+
runOnlyForDeploymentPostprocessing = 0;
166+
};
167+
/* End PBXResourcesBuildPhase section */
168+
169+
/* Begin PBXSourcesBuildPhase section */
170+
5329C81B18785C4F00B91692 /* Sources */ = {
171+
isa = PBXSourcesBuildPhase;
172+
buildActionMask = 2147483647;
173+
files = (
174+
5329C82F18785C4F00B91692 /* main.m in Sources */,
175+
5329C83318785C4F00B91692 /* UYLAppDelegate.m in Sources */,
176+
5329C83918785C4F00B91692 /* UYLViewController.m in Sources */,
177+
);
178+
runOnlyForDeploymentPostprocessing = 0;
179+
};
180+
/* End PBXSourcesBuildPhase section */
181+
182+
/* Begin PBXVariantGroup section */
183+
5329C82B18785C4F00B91692 /* InfoPlist.strings */ = {
184+
isa = PBXVariantGroup;
185+
children = (
186+
5329C82C18785C4F00B91692 /* en */,
187+
);
188+
name = InfoPlist.strings;
189+
sourceTree = "<group>";
190+
};
191+
5329C83418785C4F00B91692 /* Main.storyboard */ = {
192+
isa = PBXVariantGroup;
193+
children = (
194+
5329C83518785C4F00B91692 /* Base */,
195+
);
196+
name = Main.storyboard;
197+
sourceTree = "<group>";
198+
};
199+
/* End PBXVariantGroup section */
200+
201+
/* Begin XCBuildConfiguration section */
202+
5329C84F18785C4F00B91692 /* Debug */ = {
203+
isa = XCBuildConfiguration;
204+
buildSettings = {
205+
ALWAYS_SEARCH_USER_PATHS = NO;
206+
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
207+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
208+
CLANG_CXX_LIBRARY = "libc++";
209+
CLANG_ENABLE_MODULES = YES;
210+
CLANG_ENABLE_OBJC_ARC = YES;
211+
CLANG_WARN_BOOL_CONVERSION = YES;
212+
CLANG_WARN_CONSTANT_CONVERSION = YES;
213+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
214+
CLANG_WARN_EMPTY_BODY = YES;
215+
CLANG_WARN_ENUM_CONVERSION = YES;
216+
CLANG_WARN_INT_CONVERSION = YES;
217+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
218+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
219+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
220+
COPY_PHASE_STRIP = NO;
221+
GCC_C_LANGUAGE_STANDARD = gnu99;
222+
GCC_DYNAMIC_NO_PIC = NO;
223+
GCC_OPTIMIZATION_LEVEL = 0;
224+
GCC_PREPROCESSOR_DEFINITIONS = (
225+
"DEBUG=1",
226+
"$(inherited)",
227+
);
228+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
229+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
230+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
231+
GCC_WARN_UNDECLARED_SELECTOR = YES;
232+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
233+
GCC_WARN_UNUSED_FUNCTION = YES;
234+
GCC_WARN_UNUSED_VARIABLE = YES;
235+
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
236+
ONLY_ACTIVE_ARCH = YES;
237+
SDKROOT = iphoneos;
238+
};
239+
name = Debug;
240+
};
241+
5329C85018785C4F00B91692 /* Release */ = {
242+
isa = XCBuildConfiguration;
243+
buildSettings = {
244+
ALWAYS_SEARCH_USER_PATHS = NO;
245+
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
246+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
247+
CLANG_CXX_LIBRARY = "libc++";
248+
CLANG_ENABLE_MODULES = YES;
249+
CLANG_ENABLE_OBJC_ARC = YES;
250+
CLANG_WARN_BOOL_CONVERSION = YES;
251+
CLANG_WARN_CONSTANT_CONVERSION = YES;
252+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
253+
CLANG_WARN_EMPTY_BODY = YES;
254+
CLANG_WARN_ENUM_CONVERSION = YES;
255+
CLANG_WARN_INT_CONVERSION = YES;
256+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
257+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
258+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
259+
COPY_PHASE_STRIP = YES;
260+
ENABLE_NS_ASSERTIONS = NO;
261+
GCC_C_LANGUAGE_STANDARD = gnu99;
262+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
263+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
264+
GCC_WARN_UNDECLARED_SELECTOR = YES;
265+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
266+
GCC_WARN_UNUSED_FUNCTION = YES;
267+
GCC_WARN_UNUSED_VARIABLE = YES;
268+
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
269+
SDKROOT = iphoneos;
270+
VALIDATE_PRODUCT = YES;
271+
};
272+
name = Release;
273+
};
274+
5329C85218785C4F00B91692 /* Debug */ = {
275+
isa = XCBuildConfiguration;
276+
buildSettings = {
277+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
278+
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
279+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
280+
GCC_PREFIX_HEADER = "SpeakEasy/SpeakEasy-Prefix.pch";
281+
INFOPLIST_FILE = "SpeakEasy/SpeakEasy-Info.plist";
282+
PRODUCT_NAME = "$(TARGET_NAME)";
283+
WRAPPER_EXTENSION = app;
284+
};
285+
name = Debug;
286+
};
287+
5329C85318785C4F00B91692 /* Release */ = {
288+
isa = XCBuildConfiguration;
289+
buildSettings = {
290+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
291+
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
292+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
293+
GCC_PREFIX_HEADER = "SpeakEasy/SpeakEasy-Prefix.pch";
294+
INFOPLIST_FILE = "SpeakEasy/SpeakEasy-Info.plist";
295+
PRODUCT_NAME = "$(TARGET_NAME)";
296+
WRAPPER_EXTENSION = app;
297+
};
298+
name = Release;
299+
};
300+
/* End XCBuildConfiguration section */
301+
302+
/* Begin XCConfigurationList section */
303+
5329C81A18785C4F00B91692 /* Build configuration list for PBXProject "SpeakEasy" */ = {
304+
isa = XCConfigurationList;
305+
buildConfigurations = (
306+
5329C84F18785C4F00B91692 /* Debug */,
307+
5329C85018785C4F00B91692 /* Release */,
308+
);
309+
defaultConfigurationIsVisible = 0;
310+
defaultConfigurationName = Release;
311+
};
312+
5329C85118785C4F00B91692 /* Build configuration list for PBXNativeTarget "SpeakEasy" */ = {
313+
isa = XCConfigurationList;
314+
buildConfigurations = (
315+
5329C85218785C4F00B91692 /* Debug */,
316+
5329C85318785C4F00B91692 /* Release */,
317+
);
318+
defaultConfigurationIsVisible = 0;
319+
defaultConfigurationName = Release;
320+
};
321+
/* End XCConfigurationList section */
322+
};
323+
rootObject = 5329C81718785C4F00B91692 /* Project object */;
324+
}

0 commit comments

Comments
 (0)