Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
6
Task/Speech-synthesis/00-META.yaml
Normal file
6
Task/Speech-synthesis/00-META.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
category:
|
||||
- Speech synthesis
|
||||
- Temporal media
|
||||
from: http://rosettacode.org/wiki/Speech_synthesis
|
||||
note: Temporal media
|
||||
8
Task/Speech-synthesis/00-TASK.txt
Normal file
8
Task/Speech-synthesis/00-TASK.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
Render the text '''This is an example of speech synthesis''' as speech.
|
||||
|
||||
|
||||
;Related task:
|
||||
:* [[Using_a_Speech_engine_to_highlight_words|using a speech engine to highlight words]]
|
||||
<br><br>
|
||||
|
||||
|
||||
1
Task/Speech-synthesis/11l/speech-synthesis.11l
Normal file
1
Task/Speech-synthesis/11l/speech-synthesis.11l
Normal file
|
|
@ -0,0 +1 @@
|
|||
os:(‘espeak 'Hello world!'’)
|
||||
2
Task/Speech-synthesis/AmigaBASIC/speech-synthesis.basic
Normal file
2
Task/Speech-synthesis/AmigaBASIC/speech-synthesis.basic
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
text$=TRANSLATE$("This is an example of speech synthesis.")
|
||||
SAY text$
|
||||
|
|
@ -0,0 +1 @@
|
|||
say "This is an example of speech synthesis"
|
||||
2
Task/Speech-synthesis/AutoHotkey/speech-synthesis.ahk
Normal file
2
Task/Speech-synthesis/AutoHotkey/speech-synthesis.ahk
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
talk := ComObjCreate("sapi.spvoice")
|
||||
talk.Speak("This is an example of speech synthesis.")
|
||||
2
Task/Speech-synthesis/AutoIt/speech-synthesis.autoit
Normal file
2
Task/Speech-synthesis/AutoIt/speech-synthesis.autoit
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
$voice = ObjCreate("SAPI.SpVoice")
|
||||
$voice.Speak("This is an example of speech synthesis.")
|
||||
2
Task/Speech-synthesis/BASIC256/speech-synthesis.basic
Normal file
2
Task/Speech-synthesis/BASIC256/speech-synthesis.basic
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
say "Goodbye, World for the " + 123456 + "th time."
|
||||
say "This is an example of speech synthesis."
|
||||
39
Task/Speech-synthesis/BBC-BASIC/speech-synthesis.basic
Normal file
39
Task/Speech-synthesis/BBC-BASIC/speech-synthesis.basic
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
SPF_ASYNC = 1
|
||||
ON ERROR SYS `CoUninitialize` : PRINT 'REPORT$ : END
|
||||
ON CLOSE SYS `CoUninitialize` : QUIT
|
||||
|
||||
SYS "LoadLibrary","OLE32.DLL" TO O%
|
||||
SYS "GetProcAddress",O%,"CoInitialize" TO `CoInitialize`
|
||||
SYS "GetProcAddress",O%,"CoUninitialize" TO `CoUninitialize`
|
||||
SYS "GetProcAddress",O%,"CoCreateInstance" TO `CoCreateInstance`
|
||||
|
||||
SYS `CoInitialize`,0
|
||||
voice% = FN_voice_create
|
||||
PROC_voice_speak(voice%, "This is an example of speech synthesis")
|
||||
PROC_voice_wait(voice%)
|
||||
PROC_voice_free(voice%)
|
||||
SYS `CoUninitialize`
|
||||
END
|
||||
|
||||
DEF FN_voice_create
|
||||
LOCAL C%, D%, F%, I%, M%, P%, V%
|
||||
DIM C% LOCAL 15, I% LOCAL 15
|
||||
C%!0 = &96749377 : C%!4 = &11D23391 : C%!8 = &C000E39E : C%!12 = &9673794F
|
||||
I%!0 = &6C44DF74 : I%!4 = &499272B9 : I%!8 = &99EFECA1 : I%!12 = &D422046E
|
||||
SYS `CoCreateInstance`, C%, 0, 5, I%, ^V%
|
||||
IF V%=0 ERROR 100, "SAPI5 not available"
|
||||
= V%
|
||||
|
||||
DEF PROC_voice_speak(V%, M$)
|
||||
DIM M% LOCAL 2*LENM$+1
|
||||
SYS "MultiByteToWideChar", 0, 0, M$, -1, M%, LENM$+1
|
||||
SYS !(!V%+80), V%, M%, SPF_ASYNC, 0
|
||||
ENDPROC
|
||||
|
||||
DEF PROC_voice_wait(V%)
|
||||
SYS !(!V%+128), V%
|
||||
ENDPROC
|
||||
|
||||
DEF PROC_voice_free(V%)
|
||||
SYS !(!V%+8), V%
|
||||
ENDPROC
|
||||
9
Task/Speech-synthesis/Batch-File/speech-synthesis.bat
Normal file
9
Task/Speech-synthesis/Batch-File/speech-synthesis.bat
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
@set @dummy=0 /*
|
||||
::Batch File section
|
||||
@echo off
|
||||
cscript //e:jscript //nologo "%~f0" "%~1"
|
||||
exit /b
|
||||
::*/
|
||||
//The JScript section
|
||||
var objVoice = new ActiveXObject("SAPI.SpVoice");
|
||||
objVoice.speak(WScript.Arguments(0));
|
||||
13
Task/Speech-synthesis/C-sharp/speech-synthesis.cs
Normal file
13
Task/Speech-synthesis/C-sharp/speech-synthesis.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
using SpeechLib;
|
||||
|
||||
namespace Speaking_Computer
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
private static void Main()
|
||||
{
|
||||
var voice = new SpVoice();
|
||||
voice.Speak("This is an example of speech synthesis.");
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Task/Speech-synthesis/C/speech-synthesis.c
Normal file
32
Task/Speech-synthesis/C/speech-synthesis.c
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include <sys/wait.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void talk(const char *s)
|
||||
{
|
||||
pid_t pid;
|
||||
int status;
|
||||
|
||||
pid = fork();
|
||||
if (pid < 0) {
|
||||
perror("fork");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (pid == 0) {
|
||||
execlp("espeak", "espeak", s, (void*)0);
|
||||
perror("espeak");
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
waitpid(pid, &status, 0);
|
||||
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
talk("This is an example of speech synthesis.");
|
||||
return 0;
|
||||
}
|
||||
2
Task/Speech-synthesis/Clojure/speech-synthesis.clj
Normal file
2
Task/Speech-synthesis/Clojure/speech-synthesis.clj
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
(use 'speech-synthesis.say)
|
||||
(say "This is an example of speech synthesis.")
|
||||
12
Task/Speech-synthesis/FreeBASIC/speech-synthesis.basic
Normal file
12
Task/Speech-synthesis/FreeBASIC/speech-synthesis.basic
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
''This works on Windows. Does anyone know how it would be done in Linux?
|
||||
|
||||
Sub speak(texto As String)
|
||||
Dim As String frase
|
||||
frase ="mshta vbscript:Execute(""CreateObject(""""SAPI.SpVoice"""").Speak("""""+texto+""""")(window.close)"")"
|
||||
Print texto
|
||||
Shell frase
|
||||
End Sub
|
||||
|
||||
speak "Vamos a contar " + str(123456)
|
||||
speak "This is an example of speech synthesis."
|
||||
Sleep
|
||||
5
Task/Speech-synthesis/FutureBasic/speech-synthesis.basic
Normal file
5
Task/Speech-synthesis/FutureBasic/speech-synthesis.basic
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
SpeechSynthesizerRef ref
|
||||
ref = fn SpeechSynthesizerWithVoice( @"com.apple.speech.synthesis.voice.daniel.premium" )
|
||||
fn SpeechSynthesizerStartSpeakingString( ref, @"This is an example of speech synthesis." )
|
||||
|
||||
HandleEvents
|
||||
4
Task/Speech-synthesis/GlovePIE/speech-synthesis.glovepie
Normal file
4
Task/Speech-synthesis/GlovePIE/speech-synthesis.glovepie
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
if var.number=0 then
|
||||
var.number=1
|
||||
say("This is an example of speech synthesis.")
|
||||
endif
|
||||
28
Task/Speech-synthesis/Go/speech-synthesis.go
Normal file
28
Task/Speech-synthesis/Go/speech-synthesis.go
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"go/build"
|
||||
"log"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/unixpickle/gospeech"
|
||||
"github.com/unixpickle/wav"
|
||||
)
|
||||
|
||||
const pkgPath = "github.com/unixpickle/gospeech"
|
||||
const input = "This is an example of speech synthesis."
|
||||
|
||||
func main() {
|
||||
p, err := build.Import(pkgPath, ".", build.FindOnly)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
d := filepath.Join(p.Dir, "dict/cmudict-IPA.txt")
|
||||
dict, err := gospeech.LoadDictionary(d)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
phonetics := dict.TranslateToIPA(input)
|
||||
synthesized := gospeech.DefaultVoice.Synthesize(phonetics)
|
||||
wav.WriteFile(synthesized, "output.wav")
|
||||
}
|
||||
1
Task/Speech-synthesis/Groovy/speech-synthesis.groovy
Normal file
1
Task/Speech-synthesis/Groovy/speech-synthesis.groovy
Normal file
|
|
@ -0,0 +1 @@
|
|||
'say "This is an example of speech synthesis."'.execute()
|
||||
5
Task/Speech-synthesis/Haskell/speech-synthesis.hs
Normal file
5
Task/Speech-synthesis/Haskell/speech-synthesis.hs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import System.Process (callProcess) -- From “process” library
|
||||
|
||||
say text = callProcess "espeak" ["--", text]
|
||||
|
||||
main = say "This is an example of speech synthesis."
|
||||
2
Task/Speech-synthesis/JavaScript/speech-synthesis-1.js
Normal file
2
Task/Speech-synthesis/JavaScript/speech-synthesis-1.js
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
var utterance = new SpeechSynthesisUtterance("This is an example of speech synthesis.");
|
||||
window.speechSynthesis.speak(utterance);
|
||||
2
Task/Speech-synthesis/JavaScript/speech-synthesis-2.js
Normal file
2
Task/Speech-synthesis/JavaScript/speech-synthesis-2.js
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
var voice = new ActiveXObject("SAPI.SpVoice");
|
||||
voice.speak("This is an example of speech synthesis.");
|
||||
4
Task/Speech-synthesis/Julia/speech-synthesis.julia
Normal file
4
Task/Speech-synthesis/Julia/speech-synthesis.julia
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
julia> a = "hello world"
|
||||
"hello world"
|
||||
|
||||
julia> run(`espeak $a`)
|
||||
26
Task/Speech-synthesis/Kotlin/speech-synthesis.kotlin
Normal file
26
Task/Speech-synthesis/Kotlin/speech-synthesis.kotlin
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
// Kotlin Native v0.6.2
|
||||
|
||||
import kotlinx.cinterop.*
|
||||
import platform.posix.*
|
||||
|
||||
fun talk(s: String) {
|
||||
val pid = fork()
|
||||
if (pid < 0) {
|
||||
perror("fork")
|
||||
exit(1)
|
||||
}
|
||||
if (pid == 0) {
|
||||
execlp("espeak", "espeak", s, null)
|
||||
perror("espeak")
|
||||
_exit(1)
|
||||
}
|
||||
memScoped {
|
||||
val status = alloc<IntVar>()
|
||||
waitpid(pid, status.ptr, 0)
|
||||
if (status.value > 0) println("Exit status was ${status.value}")
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
talk("This is an example of speech synthesis.")
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
nomainwin
|
||||
run "C:\Program Files\eSpeak\command_line\espeak "; chr$( 34); "This is an example of speech synthesis."; chr$( 34)
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
|say,"This is an example of speech synthesis."
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Module UsingStatementSpeech {
|
||||
Volume 100
|
||||
Speech "This is an example of speech synthesis."
|
||||
}
|
||||
UsingStatementSpeech
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Module UsingEvents {
|
||||
Declare WithEvents sp "SAPI.SpVoice"
|
||||
That$="This is an example of speech synthesis."
|
||||
EndStream=False
|
||||
Function sp_Word {
|
||||
Read New StreamNumber, StreamPosition, CharacterPosition, Length
|
||||
Rem: Print StreamNumber, StreamPosition, CharacterPosition, Length
|
||||
Print Mid$(That$, CharacterPosition+1, Length);" ";
|
||||
Refresh
|
||||
}
|
||||
Function sp_EndStream {
|
||||
Print
|
||||
Refresh
|
||||
EndStream=True
|
||||
}
|
||||
Const SVEStartInputStream = 2
|
||||
Const SVEEndInputStream = 4
|
||||
Const SVEVoiceChange = 8
|
||||
Const SVEBookmark = 16
|
||||
Const SVEWordBoundary = 32
|
||||
Const SVEPhoneme = 64
|
||||
Const SVESentenceBoundary = 128
|
||||
Const SVEViseme = 256
|
||||
Const SVEAudioLevel = 512
|
||||
Const SVEPrivate = 32768
|
||||
Const SVEAllEvents = 33790
|
||||
|
||||
Const SVSFDefault = 0&
|
||||
Const SVSFlagsAsync = 1&
|
||||
Const SVSFPurgeBeforeSpeak=2&
|
||||
|
||||
With sp, "EventInterests", SVEWordBoundary+SVEEndInputStream
|
||||
Method sp, "Speak", That$, SVSFlagsAsync
|
||||
While Not EndStream {Wait 10}
|
||||
}
|
||||
UsingEvents
|
||||
1
Task/Speech-synthesis/Mathematica/speech-synthesis.math
Normal file
1
Task/Speech-synthesis/Mathematica/speech-synthesis.math
Normal file
|
|
@ -0,0 +1 @@
|
|||
Speak["This is an example of speech synthesis."]
|
||||
3
Task/Speech-synthesis/Nim/speech-synthesis.nim
Normal file
3
Task/Speech-synthesis/Nim/speech-synthesis.nim
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import osproc
|
||||
|
||||
discard execCmd("espeak 'Hello world!'")
|
||||
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-1.parigp
Normal file
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-1.parigp
Normal file
|
|
@ -0,0 +1 @@
|
|||
speak(txt,opt="")=extern(concat(["espeak ",opt," \"",txt,"\""]));
|
||||
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-2.parigp
Normal file
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-2.parigp
Normal file
|
|
@ -0,0 +1 @@
|
|||
speak("This is an example of speech synthesis")
|
||||
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-3.parigp
Normal file
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-3.parigp
Normal file
|
|
@ -0,0 +1 @@
|
|||
speak("The seething sea ceaseth and thus the seething sea sufficeth us.","-p10 -s100")
|
||||
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-4.parigp
Normal file
1
Task/Speech-synthesis/PARI-GP/speech-synthesis-4.parigp
Normal file
|
|
@ -0,0 +1 @@
|
|||
speak("Fischers Fritz fischt frische Fische.","-vmb/mb-de2 -s130")
|
||||
61
Task/Speech-synthesis/PHP/speech-synthesis-1.php
Normal file
61
Task/Speech-synthesis/PHP/speech-synthesis-1.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
<?php
|
||||
|
||||
|
||||
/*
|
||||
_ _____ _ _ _ ___ __
|
||||
| | |_ _| \ | | | | \ \ / /
|
||||
| | | | | \| | | | |\ V /
|
||||
| | | | | . ` | | | | > <
|
||||
| |____ _| |_| |\ | |__| |/ . \
|
||||
|______|_____|_| \_|\____//_/ \_\
|
||||
*/
|
||||
// Install eSpeak - Run this command in a terminal
|
||||
/*
|
||||
sudo apt-get install eSpeak
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
__ __ _____
|
||||
| \/ | /\ / ____|
|
||||
| \ / | / \ | |
|
||||
| |\/| | / /\ \| |
|
||||
| | | |/ ____ \ |____
|
||||
|_| |_/_/ \_\_____|
|
||||
*/
|
||||
// Mac has it's own Speech Synthesis system
|
||||
// accessible via the "say" command.
|
||||
// To use eSpeak on a Mac, change this variable to true.
|
||||
$mac_use_espeak = false;
|
||||
|
||||
// To use eSpeak on a Mac you need to install
|
||||
// Homebrew Package Manager & eSpeak
|
||||
// Run these commands in a terminal:
|
||||
/*
|
||||
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
|
||||
brew install espeak
|
||||
|
||||
*/
|
||||
|
||||
$voice = "espeak";
|
||||
$statement = 'Hello World!';
|
||||
$save_file_args = '-w HelloWorld.wav'; // eSpeak args
|
||||
|
||||
// Ask PHP what OS it was compiled for,
|
||||
// CAPITALIZE it and truncate to the first 3 chars.
|
||||
$OS = strtoupper(substr(PHP_OS, 0, 3));
|
||||
|
||||
// If this is Darwin (MacOS) AND we don't want eSpeak
|
||||
elseif($OS === 'DAR' && $mac_use_espeak == false) {
|
||||
$voice = "say -v 'Victoria'";
|
||||
$save_file_args = '-o HelloWorld.wav'; // say args
|
||||
}
|
||||
|
||||
// Say It
|
||||
exec("$voice '$statement'");
|
||||
|
||||
// Save it to a File
|
||||
exec("$voice '$statement' $save_file_args");
|
||||
117
Task/Speech-synthesis/PHP/speech-synthesis-2.php
Normal file
117
Task/Speech-synthesis/PHP/speech-synthesis-2.php
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
// List available SAPI voices
|
||||
// 0 = Microsoft David Desktop - English (United States)
|
||||
// 1 = Microsoft Zira Desktop - English (United States)
|
||||
// ... If you have additional voices installed
|
||||
function ListSAPIVoices(&$voice){
|
||||
foreach($voice->GetVoices as $v){
|
||||
echo $v->GetDescription . PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$filename = "DaisyBell.wav";
|
||||
|
||||
// https://en.wikipedia.org/wiki/Daisy_Bell#Computing_and_technology
|
||||
// "In 1961, an IBM 704 at Bell Labs was programmed to sing "Daisy Bell"-
|
||||
// in the earliest demonstration of computer speech synthesis."
|
||||
$statement = "There is a flower within my heart, Daisy, Daisy!
|
||||
Planted one day by a glancing dart,
|
||||
Planted by Daisy Bell!
|
||||
Whether she loves me or loves me not,
|
||||
Sometimes it's hard to tell;
|
||||
Yet I am longing to share the lot
|
||||
Of beautiful Daisy Bell!
|
||||
|
||||
Daisy, Daisy,
|
||||
Give me your answer, do!
|
||||
I'm half crazy,
|
||||
All for the love of you!
|
||||
It won't be a stylish marriage,
|
||||
I can't afford a carriage,
|
||||
But you'll look sweet on the seat
|
||||
Of a bicycle built for two!
|
||||
|
||||
We will go tandem as man and wife, Daisy, Daisy!
|
||||
Ped'ling away down the road of life, I and my Daisy Bell!
|
||||
When the road's dark we can both despise Po'leaseman and lamps as well;
|
||||
There are bright lights in the dazzling eyes Of beautiful Daisy Bell!
|
||||
|
||||
Daisy, Daisy,
|
||||
Give me your answer, do!
|
||||
I'm half crazy,
|
||||
All for the love of you!
|
||||
It won't be a stylish marriage,
|
||||
I can't afford a carriage,
|
||||
But you'll look sweet on the seat
|
||||
Of a bicycle built for two!
|
||||
|
||||
I will stand by you in wheel or woe, Daisy, Daisy!
|
||||
You'll be the bell which I'll ring you know! Sweet little Daisy Bell!
|
||||
You'll take the lead in each trip we take, Then if I don't do well;
|
||||
I will permit you to use the brake, My beautiful Daisy Bell!";
|
||||
|
||||
// COM (Component Object Model) objects
|
||||
// https://www.php.net/manual/en/book.com.php
|
||||
$voice = new COM("SAPI.SpVoice");
|
||||
$voice_file_stream = new COM("SAPI.SpVoice");
|
||||
$file_stream = new COM("SAPI.SpFileStream");
|
||||
|
||||
|
||||
// Change $voice to Zira
|
||||
$voice->Voice = $voice->GetVoices()->Item(1);
|
||||
|
||||
// Change $voice_file_stream to David
|
||||
$voice_file_stream->Voice = $voice_file_stream->GetVoices()->Item(0);
|
||||
|
||||
// Have voices announce themselves
|
||||
//$voice->Speak($voice->Voice->GetDescription); // (Zira)
|
||||
//$voice_file_stream->Speak($voice_file_stream->Voice->GetDescription); // (David)
|
||||
|
||||
|
||||
/*
|
||||
Select Stream Quality:
|
||||
|
||||
11kHz 8Bit Mono = 8
|
||||
11kHz 8Bit Stereo = 9
|
||||
11kHz 16Bit Mono = 10
|
||||
11kHz 16Bit Stereo = 11
|
||||
...
|
||||
16kHz 8Bit Mono = 16
|
||||
16kHz 8Bit Stereo = 17
|
||||
16kHz 16Bit Mono = 18;
|
||||
16kHz 16Bit Stereo = 19
|
||||
...
|
||||
32kHz 8Bit Mono = 28
|
||||
32kHz 8Bit Stereo = 29
|
||||
32kHz 16Bit Mono = 30
|
||||
32kHz 16Bit Stereo = 31
|
||||
...
|
||||
*/
|
||||
// Set stream quality
|
||||
$file_stream->Format->Type = 17; // 16kHz 8Bit Stereo
|
||||
|
||||
/*
|
||||
Select Speech StreamFile Mode:
|
||||
Read = 0
|
||||
ReadWrite = 1
|
||||
Create = 2
|
||||
CreateForWrite = 3
|
||||
*/
|
||||
$mode = 3;
|
||||
|
||||
|
||||
// Have $voice (Zira) announce beginning file stream
|
||||
$voice->Speak('Opening audio file stream');
|
||||
|
||||
// Output TTS to File
|
||||
$file_stream->Open($filename, $mode); // Open stream and create file
|
||||
$voice_file_stream->AudioOutputStream = $file_stream; // Begin streaming TTS
|
||||
// Have $voice_file_stream (David) speak $statement
|
||||
$voice_file_stream->Speak($statement);
|
||||
$file_stream->Close; // Close stream
|
||||
|
||||
// Have $voice (Zira) announce file stream completion
|
||||
$voice->Speak('File stream complete');
|
||||
8
Task/Speech-synthesis/Perl/speech-synthesis.pl
Normal file
8
Task/Speech-synthesis/Perl/speech-synthesis.pl
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
use Speech::Synthesis;
|
||||
|
||||
($engine) = Speech::Synthesis->InstalledEngines();
|
||||
($voice) = Speech::Synthesis->InstalledVoices(engine => $engine);
|
||||
|
||||
Speech::Synthesis
|
||||
->new(engine => $engine, voice => $voice->{id})
|
||||
->speak("This is an example of speech synthesis.");
|
||||
30
Task/Speech-synthesis/Phix/speech-synthesis.phix
Normal file
30
Task/Speech-synthesis/Phix/speech-synthesis.phix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #000080;font-style:italic;">--
|
||||
-- demo\rosetta\Speak.exw
|
||||
-- ======================
|
||||
--</span>
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #7060A8;">requires</span><span style="color: #0000FF;">(</span><span style="color: #000000;">6</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- WINDOWS or JS, not LINUX</span>
|
||||
<span style="color: #7060A8;">requires</span><span style="color: #0000FF;">(</span><span style="color: #000000;">32</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- Windows 32 bit only, for now...
|
||||
-- (^ runs fine on a 64-bit OS, but needs a 32-bit p.exe)</span>
|
||||
<span style="color: #7060A8;">requires</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"1.0.2"</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">include</span> <span style="color: #000000;">builtins</span><span style="color: #0000FF;">\</span><span style="color: #7060A8;">speak</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> <span style="color: #000080;font-style:italic;">-- (new in 1.0.2)</span>
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">text</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"This is an example of speech synthesis"</span>
|
||||
|
||||
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">button_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">speak</span><span style="color: #0000FF;">(</span><span style="color: #000000;">text</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_CONTINUE</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
|
||||
<span style="color: #7060A8;">IupOpen</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">btn</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupButton</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Speak"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"button_cb"</span><span style="color: #0000FF;">)),</span>
|
||||
<span style="color: #000000;">dlg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupDialog</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">IupHbox</span><span style="color: #0000FF;">({</span><span style="color: #000000;">btn</span><span style="color: #0000FF;">},</span><span style="color: #008000;">"MARGIN=180x80"</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #7060A8;">IupSetAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">text</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">IupShow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #7060A8;">IupMainLoop</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<!--
|
||||
1
Task/Speech-synthesis/PicoLisp/speech-synthesis.l
Normal file
1
Task/Speech-synthesis/PicoLisp/speech-synthesis.l
Normal file
|
|
@ -0,0 +1 @@
|
|||
(call 'espeak "This is an example of speech synthesis.")
|
||||
6
Task/Speech-synthesis/PowerShell/speech-synthesis.psh
Normal file
6
Task/Speech-synthesis/PowerShell/speech-synthesis.psh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Add-Type -AssemblyName System.Speech
|
||||
|
||||
$anna = New-Object System.Speech.Synthesis.SpeechSynthesizer
|
||||
|
||||
$anna.Speak("I'm sorry Dave, I'm afraid I can't do that.")
|
||||
$anna.Dispose()
|
||||
5
Task/Speech-synthesis/Python/speech-synthesis.py
Normal file
5
Task/Speech-synthesis/Python/speech-synthesis.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import pyttsx
|
||||
|
||||
engine = pyttsx.init()
|
||||
engine.say("It was all a dream.")
|
||||
engine.runAndWait()
|
||||
8
Task/Speech-synthesis/REXX/speech-synthesis.rexx
Normal file
8
Task/Speech-synthesis/REXX/speech-synthesis.rexx
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
/*REXX program uses a command line interface to invoke Windows SAM for speech synthesis.*/
|
||||
parse arg t /*get the (optional) text from the C.L.*/
|
||||
if t='' then exit /*Nothing to say? Then exit program.*/
|
||||
dquote= '"'
|
||||
rate= 1 /*talk: -10 (slow) to 10 (fast). */
|
||||
/* [↓] where the rubber meets the road*/
|
||||
'NIRCMD' "speak text" dquote t dquote rate /*NIRCMD invokes Microsoft's Sam voice*/
|
||||
/*stick a fork in it, we're all done. */
|
||||
12
Task/Speech-synthesis/Racket/speech-synthesis.rkt
Normal file
12
Task/Speech-synthesis/Racket/speech-synthesis.rkt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#lang racket
|
||||
(require racket/lazy-require)
|
||||
(lazy-require [ffi/com (com-create-instance com-release com-invoke)])
|
||||
(define (speak text)
|
||||
(cond [(eq? 'windows (system-type))
|
||||
(define c (com-create-instance "SAPI.SpVoice"))
|
||||
(com-invoke c "Speak" text)
|
||||
(com-release c)]
|
||||
[(ormap find-executable-path '("say" "espeak"))
|
||||
=> (λ(exe) (void (system* exe text)))]
|
||||
[else (error 'speak "I'm speechless!")]))
|
||||
(speak "This is an example of speech synthesis.")
|
||||
1
Task/Speech-synthesis/Raku/speech-synthesis.raku
Normal file
1
Task/Speech-synthesis/Raku/speech-synthesis.raku
Normal file
|
|
@ -0,0 +1 @@
|
|||
run 'espeak', 'This is an example of speech synthesis.';
|
||||
51
Task/Speech-synthesis/Ring/speech-synthesis.ring
Normal file
51
Task/Speech-synthesis/Ring/speech-synthesis.ring
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
load "guilib.ring"
|
||||
load "stdlib.ring"
|
||||
|
||||
MyApp = New qApp {
|
||||
|
||||
win1 = new qWidget() {
|
||||
|
||||
setwindowtitle("Hello World")
|
||||
setGeometry(100,100,370,250)
|
||||
|
||||
Text = "This is an example of speech synthesis"
|
||||
Text = split(Text," ")
|
||||
|
||||
label1 = new qLabel(win1) {
|
||||
settext("What is your name ?")
|
||||
setGeometry(10,20,350,30)
|
||||
setalignment(Qt_AlignHCenter)
|
||||
}
|
||||
|
||||
btn1 = new qpushbutton(win1) {
|
||||
setGeometry(10,200,100,30)
|
||||
settext("Say Hello")
|
||||
setclickevent("pHello()")
|
||||
}
|
||||
|
||||
btn2 = new qpushbutton(win1) {
|
||||
setGeometry(150,200,100,30)
|
||||
settext("Close")
|
||||
setclickevent("pClose()")
|
||||
}
|
||||
|
||||
lineedit1 = new qlineedit(win1) {
|
||||
setGeometry(10,100,350,30)
|
||||
}
|
||||
|
||||
voice = new QTextToSpeech(win1) {
|
||||
}
|
||||
show()
|
||||
}
|
||||
exec()
|
||||
}
|
||||
|
||||
Func pHello
|
||||
lineedit1.settext( "Hello " + lineedit1.text())
|
||||
for n = 1 to len(Text)
|
||||
voice.Say(Text[n])
|
||||
see Text[n] + nl
|
||||
next
|
||||
|
||||
Func pClose
|
||||
MyApp.quit()
|
||||
21
Task/Speech-synthesis/Ruby/speech-synthesis-1.rb
Normal file
21
Task/Speech-synthesis/Ruby/speech-synthesis-1.rb
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
module OperatingSystem
|
||||
require 'rbconfig'
|
||||
module_function
|
||||
def operating_system
|
||||
case RbConfig::CONFIG["host_os"]
|
||||
when /linux/i
|
||||
:linux
|
||||
when /cygwin|mswin|mingw|windows/i
|
||||
:windows
|
||||
when /darwin/i
|
||||
:mac
|
||||
when /solaris/i
|
||||
:solaris
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
def linux?; operating_system == :linux; end
|
||||
def windows?; operating_system == :windows; end
|
||||
def mac?; operating_system == :mac; end
|
||||
end
|
||||
17
Task/Speech-synthesis/Ruby/speech-synthesis-2.rb
Normal file
17
Task/Speech-synthesis/Ruby/speech-synthesis-2.rb
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
load 'operating_system.rb'
|
||||
|
||||
def speak(text)
|
||||
if OperatingSystem.windows?
|
||||
require 'win32/sapi5'
|
||||
v = Win32::SpVoice.new
|
||||
v.Speak(text)
|
||||
elsif OperatingSystem.mac?
|
||||
IO.popen(["say"], "w") {|pipe| pipe.puts text}
|
||||
else
|
||||
# Try to run "espeak". No OperatingSystem check: "espeak" is
|
||||
# for Linux but is also an optional package for BSD.
|
||||
IO.popen(["espeak", "-stdin"], "w") {|pipe| pipe.puts text}
|
||||
end
|
||||
end
|
||||
|
||||
speak 'This is an example of speech synthesis.'
|
||||
50
Task/Speech-synthesis/Scala/speech-synthesis.scala
Normal file
50
Task/Speech-synthesis/Scala/speech-synthesis.scala
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
import javax.speech.Central
|
||||
import javax.speech.synthesis.{Synthesizer, SynthesizerModeDesc}
|
||||
|
||||
object ScalaSpeaker extends App {
|
||||
|
||||
def speech(text: String) = {
|
||||
if (!text.trim.isEmpty) {
|
||||
val VOICENAME = "kevin16"
|
||||
|
||||
System.setProperty("freetts.voices", "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory")
|
||||
Central.registerEngineCentral("com.sun.speech.freetts.jsapi.FreeTTSEngineCentral")
|
||||
|
||||
val synth = Central.createSynthesizer(null)
|
||||
synth.allocate()
|
||||
|
||||
val desc = synth.getEngineModeDesc match {case g2: SynthesizerModeDesc => g2}
|
||||
|
||||
synth.getSynthesizerProperties.setVoice(desc.getVoices.find(_.toString == VOICENAME).get)
|
||||
synth.speakPlainText(text, null)
|
||||
|
||||
synth.waitEngineState(Synthesizer.QUEUE_EMPTY)
|
||||
synth.deallocate()
|
||||
}
|
||||
}
|
||||
|
||||
speech( """Thinking of Holland
|
||||
|I see broad rivers
|
||||
|slowly chuntering
|
||||
|through endless lowlands,
|
||||
|rows of implausibly
|
||||
|airy poplars
|
||||
|standing like tall plumes
|
||||
|against the horizon;
|
||||
|and sunk in the unbounded
|
||||
|vastness of space
|
||||
|homesteads and boweries
|
||||
|dotted across the land,
|
||||
|copses, villages,
|
||||
|couchant towers,
|
||||
|churches and elm-trees,
|
||||
|bound in one great unity.
|
||||
|There the sky hangs low,
|
||||
|and steadily the sun
|
||||
|is smothered in a greyly
|
||||
|iridescent smirr,
|
||||
|and in every province
|
||||
|the voice of water
|
||||
|with its lapping disasters
|
||||
|is feared and hearkened.""".stripMargin)
|
||||
}
|
||||
4
Task/Speech-synthesis/Sidef/speech-synthesis.sidef
Normal file
4
Task/Speech-synthesis/Sidef/speech-synthesis.sidef
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
func text2speech(text, lang='en') {
|
||||
Sys.run("espeak -v #{lang} -w /dev/stdout #{text.escape} | aplay");
|
||||
}
|
||||
text2speech("This is an example of speech synthesis.");
|
||||
6
Task/Speech-synthesis/Swift/speech-synthesis.swift
Normal file
6
Task/Speech-synthesis/Swift/speech-synthesis.swift
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import Foundation
|
||||
|
||||
let task = NSTask()
|
||||
task.launchPath = "/usr/bin/say"
|
||||
task.arguments = ["This is an example of speech synthesis."]
|
||||
task.launch()
|
||||
1
Task/Speech-synthesis/Tcl/speech-synthesis-1.tcl
Normal file
1
Task/Speech-synthesis/Tcl/speech-synthesis-1.tcl
Normal file
|
|
@ -0,0 +1 @@
|
|||
exec festival --tts << "This is an example of speech synthesis."
|
||||
1
Task/Speech-synthesis/Tcl/speech-synthesis-2.tcl
Normal file
1
Task/Speech-synthesis/Tcl/speech-synthesis-2.tcl
Normal file
|
|
@ -0,0 +1 @@
|
|||
exec say << "This is an example of speech synthesis."
|
||||
5
Task/Speech-synthesis/Tcl/speech-synthesis-3.tcl
Normal file
5
Task/Speech-synthesis/Tcl/speech-synthesis-3.tcl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
package require tcom
|
||||
|
||||
set msg "This is an example of speech synthesis."
|
||||
set voice [::tcom::ref createobject Sapi.SpVoice]
|
||||
$voice Speak $msg 0
|
||||
13
Task/Speech-synthesis/Tcl/speech-synthesis-4.tcl
Normal file
13
Task/Speech-synthesis/Tcl/speech-synthesis-4.tcl
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
proc speak {msg} {
|
||||
global tcl_platform
|
||||
if {$tcl_platform(platform) eq "windows"} {
|
||||
package require tcom
|
||||
set voice [::tcom::ref createobject Sapi.SpVoice]
|
||||
$voice Speak $msg 0
|
||||
} elseif {$tcl_platform(os) eq "Darwin"} {
|
||||
exec say << $msg
|
||||
} else {
|
||||
exec festival --tts << $msg
|
||||
}
|
||||
}
|
||||
speak "This is an example of speech synthesis."
|
||||
2
Task/Speech-synthesis/UNIX-Shell/speech-synthesis.sh
Normal file
2
Task/Speech-synthesis/UNIX-Shell/speech-synthesis.sh
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
espeak "This is an example of speech synthesis."
|
||||
4
Task/Speech-synthesis/VBScript/speech-synthesis.vb
Normal file
4
Task/Speech-synthesis/VBScript/speech-synthesis.vb
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Dim message, sapi
|
||||
message = "This is an example of speech synthesis."
|
||||
Set sapi = CreateObject("sapi.spvoice")
|
||||
sapi.Speak message
|
||||
11
Task/Speech-synthesis/Wren/speech-synthesis-1.wren
Normal file
11
Task/Speech-synthesis/Wren/speech-synthesis-1.wren
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/* speech_synthesis.wren */
|
||||
|
||||
class C {
|
||||
foreign static getInput(maxSize)
|
||||
|
||||
foreign static espeak(s)
|
||||
}
|
||||
|
||||
System.write("Enter something to say (up to 100 characters) : ")
|
||||
var s = C.getInput(100)
|
||||
C.espeak(s)
|
||||
69
Task/Speech-synthesis/Wren/speech-synthesis-2.wren
Normal file
69
Task/Speech-synthesis/Wren/speech-synthesis-2.wren
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#include <stdio.h>
|
||||
#include <stdio_ext.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "wren.h"
|
||||
|
||||
void C_getInput(WrenVM* vm) {
|
||||
int maxSize = (int)wrenGetSlotDouble(vm, 1) + 2;
|
||||
char input[maxSize];
|
||||
fgets(input, maxSize, stdin);
|
||||
__fpurge(stdin);
|
||||
input[strcspn(input, "\n")] = 0;
|
||||
wrenSetSlotString(vm, 0, (const char*)input);
|
||||
}
|
||||
|
||||
void C_espeak(WrenVM* vm) {
|
||||
const char *arg = wrenGetSlotString(vm, 1);
|
||||
char command[strlen(arg) + 10];
|
||||
strcpy(command, "espeak \"");
|
||||
strcat(command, arg);
|
||||
strcat(command, "\"");
|
||||
system(command);
|
||||
}
|
||||
|
||||
WrenForeignMethodFn bindForeignMethod(
|
||||
WrenVM* vm,
|
||||
const char* module,
|
||||
const char* className,
|
||||
bool isStatic,
|
||||
const char* signature) {
|
||||
if (strcmp(module, "main") == 0) {
|
||||
if (strcmp(className, "C") == 0) {
|
||||
if (isStatic && strcmp(signature, "getInput(_)") == 0) return C_getInput;
|
||||
if (isStatic && strcmp(signature, "espeak(_)") == 0) return C_espeak;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void writeFn(WrenVM* vm, const char* text) {
|
||||
printf("%s", text);
|
||||
}
|
||||
|
||||
char *readFile(const char *fileName) {
|
||||
FILE *f = fopen(fileName, "r");
|
||||
fseek(f, 0, SEEK_END);
|
||||
long fsize = ftell(f);
|
||||
rewind(f);
|
||||
char *script = malloc(fsize + 1);
|
||||
fread(script, 1, fsize, f);
|
||||
fclose(f);
|
||||
script[fsize] = 0;
|
||||
return script;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
WrenConfiguration config;
|
||||
wrenInitConfiguration(&config);
|
||||
config.writeFn = &writeFn;
|
||||
config.bindForeignMethodFn = &bindForeignMethod;
|
||||
WrenVM* vm = wrenNewVM(&config);
|
||||
const char* module = "main";
|
||||
const char* fileName = "speech_synthesis.wren";
|
||||
char *script = readFile(fileName);
|
||||
wrenInterpret(vm, module, script);
|
||||
wrenFreeVM(vm);
|
||||
free(script);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
10 LET s$="(th)is is an exampul of sp(ee)(ch) sin(th)esis":PAUSE 1
|
||||
1
Task/Speech-synthesis/Zoomscript/speech-synthesis.zoom
Normal file
1
Task/Speech-synthesis/Zoomscript/speech-synthesis.zoom
Normal file
|
|
@ -0,0 +1 @@
|
|||
speak "This is an example of speech synthesis."
|
||||
Loading…
Add table
Add a link
Reference in a new issue