]> gitweb.factorcode.org Git - factor.git/commitdiff
text-to-speech: simple cross-platform text-to-speech.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 1 Apr 2015 21:05:55 +0000 (14:05 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 1 Apr 2015 21:05:55 +0000 (14:05 -0700)
extra/text-to-speech/authors.txt [new file with mode: 0644]
extra/text-to-speech/linux/linux.factor [new file with mode: 0644]
extra/text-to-speech/macosx/macosx.factor [new file with mode: 0644]
extra/text-to-speech/summary.txt [new file with mode: 0644]
extra/text-to-speech/text-to-speech.factor [new file with mode: 0644]
extra/text-to-speech/windows/platforms.txt [new file with mode: 0644]
extra/text-to-speech/windows/windows.factor [new file with mode: 0644]

diff --git a/extra/text-to-speech/authors.txt b/extra/text-to-speech/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/extra/text-to-speech/linux/linux.factor b/extra/text-to-speech/linux/linux.factor
new file mode 100644 (file)
index 0000000..a23f3f2
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: formatting io io.encodings.utf8 io.launcher system
+text-to-speech ;
+
+IN: text-to-speech.linux
+
+M: linux speak-text
+    "festival --tts" utf8 [ print ] with-process-writer ;
diff --git a/extra/text-to-speech/macosx/macosx.factor b/extra/text-to-speech/macosx/macosx.factor
new file mode 100644 (file)
index 0000000..5258332
--- /dev/null
@@ -0,0 +1,9 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: formatting io.launcher system text-to-speech ;
+
+IN: text-to-speech.macosx
+
+M: macosx speak-text
+    "say \"%s\"" sprintf try-process ;
diff --git a/extra/text-to-speech/summary.txt b/extra/text-to-speech/summary.txt
new file mode 100644 (file)
index 0000000..d4f3650
--- /dev/null
@@ -0,0 +1 @@
+Text-to-speech utility
diff --git a/extra/text-to-speech/text-to-speech.factor b/extra/text-to-speech/text-to-speech.factor
new file mode 100644 (file)
index 0000000..088d745
--- /dev/null
@@ -0,0 +1,28 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: combinators generic kernel math math.text.english present
+strings system ui.operations vocabs ;
+
+IN: text-to-speech
+
+! 1. "say"
+! 2. festival, freetts, gnuspeech, espeech, flite, etc.
+! 3. core-audio?
+! 4. use google-translate-tts, download and play?
+
+HOOK: speak-text os ( str -- )
+
+{
+    { [ os macosx?  ] [ "text-to-speech.macosx"  ] }
+    { [ os linux?   ] [ "text-to-speech.linux"   ] }
+    { [ os windows? ] [ "text-to-speech.windows" ] }
+} cond require
+
+GENERIC: speak ( obj -- )
+
+M: object speak present speak-text ;
+
+M: integer speak number>text speak-text ;
+
+[ \ present ?lookup-method ] \ speak H{ } define-operation
diff --git a/extra/text-to-speech/windows/platforms.txt b/extra/text-to-speech/windows/platforms.txt
new file mode 100644 (file)
index 0000000..8e1a559
--- /dev/null
@@ -0,0 +1 @@
+windows
diff --git a/extra/text-to-speech/windows/windows.factor b/extra/text-to-speech/windows/windows.factor
new file mode 100644 (file)
index 0000000..d941ce1
--- /dev/null
@@ -0,0 +1,9 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: google.translate system text-to-speech windows.winmm ;
+
+IN: text-to-speech.windows
+
+M: windows speak-text
+    translate-tts open-command play-command close-command ;