Ticket #17316

特定の長さの日本語文書を音声合成しようとするとsegvで落ちるときがある。

Open Date: 2009-06-14 13:45 Last Update: 2009-06-14 13:45

Reporter:
Owner:
(None)
Type:
Status:
Open
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

ある程度の長さの日本語文書を音声合成しようとするとcoreを吐いて落ちるときがありました。

原因は、音声のサンプル数を求めるときの計算順序のようでした。

サンプル数の計算順序を変更することでcoreを吐かなくなりましたので報告いたします。

以下がパッチとなります。

$ diff -u ../../galateatalk{.bkup,}/gtalk/do_synthesis.c
--- ../../galateatalk.bkup/gtalk/do_synthesis.c 2006-10-19 12:27:08.000000000 +0900
+++ ../../galateatalk/gtalk/do_synthesis.c      2009-06-14 13:05:16.000000000 +0900
@@ -43,7 +43,7 @@
   totalframe -= shift_end;
   
   wave.rate = SAMPLE_RATE;
-  wave.nsample = SAMPLE_RATE * FRAME_RATE * (totalframe - shift_start) / 1000;
+  wave.nsample = (SAMPLE_RATE / 1000) * FRAME_RATE * (totalframe - shift_start);
 
   if ((wave.data = (short *) calloc (wave.nsample, sizeof (short))) == NULL)
     {
よろしくお願いします。

Ticket History (1/1 Histories)

2009-06-14 13:45 Updated by: umedoblock
  • New Ticket "特定の長さの日本語文書を音声合成しようとするとsegvで落ちるときがある。" created

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login