« 楽天的発想。 | トップページ | 人間、一人、ひとり »

2007/11/10

しゃべるプログラム・・・だよ~ん!

先月から、Solarisに組み込まれているlibgnomespeechというライブラリーで、ちょっとプログラムを書いている。もともと、視覚障害者 のスクリーンリーダーに使われているライブラリーなのだが、要するに、英語のテキストを入れると、スピーカーから、声が出てくるという仕掛け。うちのOS や、たぶん、Linuxにも、test-speechというバイナリーが載っており、それを走らせると、声は、出てくるのだが、思ったように、喋ってくれ ない。

ネットで、調べてみると、libgnomespeechは、オープンソースで提供されていて、test-speechのソースもあった。でも、い ろいろ、ヘッダーをインクルドしてあるので、ビルドに1日掛った。でも、最終的に、ソースからバイナリーをゲットすることができた。こうなれば、ソースを 改良して、自分のテキストを喋ってもらうだけである。

この作業は、ビルドより、楽で、2時間くらいでできた。テキストを入れると、喋る。たとえば、
% echo hello | ./say
で、ハローと、ロボットのような声が出てくる。

これを使って、なにか、できないか? まあ、使い勝手の良いGUIが開発できれば、トーキング・エイドとして、利用できそうだ。でも、もう少し、手っ取り早い方法で、仕事の会議の時、プレゼン テーションなどに使えないかと思う。某PPやうちのStarOfficeなどを、使って、スライドを出しておいて、裏で声を出す。・・・そんなことを考え ているうちに、ちょっと閃いた。なにも、プレゼン用のソフトを使わなくても、Terminal Window とkorn shellで、十分、プレゼンは、組み立てることができる。たとえば、

isamu@yosemite isamu: m presentation1
#! /usr/bin/ksh -p

if [[ -x ./say ]]; then
    SAY=./say
fi

if [[ -x /home/isamu/bin/say ]]; then
    SAY=/home/isamu/bin/say
fi
clear
cat <<EOF

[front page]
---------------------------------
  An possible application of
  libgnomespeech library

       by Isamu Shigemori
-------------------------------

EOF

$SAY -r 110 <<EOF
Hi
My name is isamu shigemori. I'm working in Solaris Revenue Product engineering.
Today I'd like to talk about a small command, say, s a y, which I wrote recently in my spare time.
This command is tiny, but can have many possibilities which change someone's life style. I hope you enjoy it.
So let me begin.
please go on the next slide.

EOF

echo 'please hit return'
read line

clear

こんな感じ。それで、terminal windowをスライドの代わりにすれば、プレゼンできるわけである。
これを会社で、同僚に見せたら、かなり、好評であった。
このプログラム、telnetやsshでリモート・ホストに入り、rootで走らせれば、電話としての利用価値も、多少ある。

ただ、トーキング・エイドなんて、20年前から存在し、利用されているもので、このソフトの開発を進めいていく価値が、あるかどうか、わからない。テキストを入れると、相手側で、声が出る電話など、今の時代、あって、当たり前のような気がする。

こういうソフトを日常や仕事で、使っている人や使っている人をお知りでしたら、教えてください。

ちなみに、
echo con ni ti wa |bin/say
echo isamu desu ..   |bin/say
で、外国人が喋る日本語が出てきた。

|

« 楽天的発想。 | トップページ | 人間、一人、ひとり »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 楽天的発想。 | トップページ | 人間、一人、ひとり »