0

私は unix と flite の初心者です。

#include "flite.h"

cst_voice *register_cmu_us_kal();

int main(int argc, char **argv)
{
    cst_voice *v;

    if (argc != 2)
    {
        fprintf(stderr,"usage: flite_test FILE\n");
        exit(-1);
    }

    flite_init();

    v = register_cmu_us_kal(NULL);

    flite_file_to_speech(argv[1],v,"play");

}

上記のプログラムから、register_cmu_us_kal() が英語の音声を返すことがわかりました。argv[1] に入力されたファイルは英語で読み込まれます。

cst_wave *flite_text_to_wave(const char *text,cst_voice *voice); => ウェーブするテキスト

アプリケーション コードが既に存在するプロジェクトに取り組んでおり、表示されるテキストを音声に変換したいと考えています。register_cmu_us_kal() 何をするのか理解できませんでした。flite.h ライブラリで利用可能なさまざまな関数とその機能を確認する方法。

理解するのを手伝ってください

4

1 に答える 1

1

argv[1] に入力されたファイルは英語で読み込まれます。

cst_wave *flite_text_to_wave(const char *text,cst_voice *voice); => 波打つテキスト

この関数は a を返し、cst_wave*読み上げません。指定されたテキストを読み上げる関数は次のとおりです。

float flite_text_to_speech(const char *text, cst_voice *voice, const char *outtype);

として呼び出す必要がありますflite_text_to_speech("Hello world!", v, "play");

関数cst_voice *register_cmu_us_kal(const char*);は、この cst_voice がプログラムで使用されることを flite エンジンに登録するために呼び出されます。マシンで使用可能なボイスのリストを表示するには、コマンド

flite -lv

与えることができます。私のマシンの出力

使用可能な音声: kal awb_time kal16 awb rms slt

flite_text_to_speechしたがって、関数で使用する上記のすべての声を登録できました。

于 2012-09-19T07:03:21.447 に答える