Recently in programming Category
Microsoft Speech APIを触ってみた。.NETだとすごく簡単だった。Hello Worldは以下のとおり。Microsoft Windows XP上で、Microsoft Speech SDK 5.1をインストールし、Visual C# 2005 Express Editionで作成した。最初に参照設定で、"Microsoft Speech Object Library"を追加すること。
このコードは、インストールされているすべてのVoiceで"It's fine today"と発音する。
using System;
using System.Collections.Generic;
using System.Text;
using SpeechLib;
namespace TTSTest
{
class Program
{
static void Main(string[] args)
{
SpVoice voice = new SpVoice();
ISpeechObjectTokens token = voice.GetVoices("", "");
for (int i = 0; i < token.Count; i++)
{
voice.Voice = token.Item(i);
Console.WriteLine(token.Item(i).GetDescription(0));
voice.Speak("it's fine today", SpeechVoiceSpeakFlags.SVSFlagsAsync);
}
while (voice.Status.RunningState == SpeechRunState.SRSEIsSpeaking) ;
}
}
}
今月からJava読書会に参加する予定だ。課題図書はJavaネットワークプログラミングの神髄である。予習課題が出ているので早速やってみた。
めずらしく技術的な話である。おそらくnoisefactoryの常連読者の皆様のほとんどが興味がないと思われる。気にしないように。
naoya氏のblogエントリLinux のスリープ処理、タイマ処理の詳細を見るにインスパイアされて、Linuxのシステムコールgettimeofday(2)がマイクロ秒の精度がある理由を調べてみた。 ナゼこんなことに興味があるかというと、時刻を監理しているticsという変数は、(デフォルトでは)4ms毎に更新される。 にもかかわらず、gettimeofdayがその1000倍以上の精度を持っているのは非常に不思議だ。
ハード屋なのかソフト屋なのか学者なのかよくわからない人代表としては、ハード側から攻めて見る事にした。 そもそもCPUにはclockというピンがあり、CPUのペリフェラルにはタイマカウンタがある。 詳細Linuxカーネルの6章によると、tsc(Time Stamp Counter)というカウンタがあるという。おそらくここに到達するだろうということで lxrで追って見る事にした。この記事では、Linux 2.6.11 i386のソースを用いることにする。

