8

私はSuperUserでこの質問をしましたが、耳が聞こえません。うまくいけば、私はここでより多くの聴衆を得ることができます。

ScriptVoxのような低コスト(または無料)のソリューションで、より優れたエンジンのみを探しています。つまり、スクリプトを読み込んで、音声に文字を割り当てます。ここで投稿を読みましたが、それでもwavファイルを連結する必要があります。Audacityが好きではないというわけではありませんが、時間がかかります。私は自分で書くことを中途半端に考えていますが、そこに解決策がなければならないと確信しています。助言がありますか?

4

4 に答える 4

10

MicrosoftのText-to-Speechエンジンを使用します。彼らはあなたが探していることを正確に行う方法についての簡単な例を持っています:

http://msdn.microsoft.com/en-us/library/ms717065(v=vs.85).aspx

そのサンプルコードを使用すると、テキストを話し、それをWAVファイルにダンプすることができます。そこから、MP3などの形式に変換する必要がある場合は、FFMPEGを使用できます。

于 2012-04-13T17:30:35.327 に答える
5

ブラッドの答えは、あなたが探しているものが正確に含まれているので、かなり素晴らしいです。ただし、正誤表の質問で好みを表明した基本事項が1つ欠けています。それは、C#での実装です。

マネージコードでSpeechAPIにアクセスするための完全なチュートリアルは次のとおりです。Blake NiemyjskiとMicrosoftの適切なチームの功績により、元の記事へのリンクバックが無効になっており、これはMicrosoftから直接借用されているように見えるため、ここに重要な部分があります。

次のリンク(Giving Computers a Voice)は、プロジェクトを作成し、VB .Netまたはc#で基本的なテキスト読み上げアプリケーションをすぐに実行する方法を示すMicrosoftサイトに移動します。

SAPI

SAPIは、アプリケーションに音声認識およびテキスト読み上げ(TTS)エンジンへのアクセスを提供する音声APIです。この記事はTTSに焦点を当てています。TTSの場合、SAPIはテキストを入力として受け取り、TTSエンジンを使用してそのテキストを音声として出力します。これは、Windowsアクセシビリティツールであるナレーターで使用されているものと同じテクノロジです。XP以降のすべてのバージョンのWindowsには、SAPIと英語のTTSエンジンが付属しています。

TTSはユーザーの耳を動かします。これにより、アプリケーションはユーザーの目や手を必要とせずにユーザーに情報を送信できます。これは非常に強力な出力オプションであり、PCではあまり使用されません。

管理対象アプリケーションでTTSを使用するには、次の3つの手順が必要です。

  1. 相互運用DLLを作成する

SAPIはCOMコンポーネントであるため、マネージドアプリから使用するには相互運用機能DLLが必要です。これを作成するには、VisualStudioでプロジェクトを開きます。[プロジェクト]メニューを選択し、[参照の追加]をクリックします。[COM]タブを選択し、リストで[Microsoft音声オブジェクトライブラリ]を選択して、[OK]をクリックします。これらの手順により、この参照がプロジェクトに追加され、実行可能ファイルと同じフォルダーにInterop.SpeechLib.dllが作成されます。この相互運用機能DLLは、正しく機能するために、常に.exeと同じフォルダーにある必要があります。

  1. 相互運用の名前空間を参照する

この名前空間をアプリケーションに含めます。C#で、「usingSpeechLib;」を追加します。iIn VBに、「ImportsSpeechLib」を追加します。

  1. Speak()を呼び出す

SpVoiceオブジェクトを作成し、Speak()を呼び出します。

Visual C#

SpVoice voice = new SpVoice();
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault);

Visual Basic

voice = New SpVoice
voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault)

ブラッドの答えが私をここで正しい解決策に導いたと思います(したがって、彼は私よりも信用に値する)が、これはあなたが見逃していた最後の部分であるはずです。これで、 C ++ソリューションからのWAVファイルの書き込みをマネージコードで複製し、そこから目的の形式にトランスコードできるようになります。

于 2012-04-14T17:27:54.683 に答える
3

プログラムにインターネットへのアクセスを許可する場合は、iSpeechを使用できます。

APIを使用できますが、残念ながら1日あたり200回に制限されています。

彼らのAPIはまたformat=(wav|mp3)、クエリの後に追加することを可能にし、あなたが両方の望ましいフォーマットであなたのサウンドを得るのを可能にします。

于 2012-04-15T22:24:46.740 に答える
1

http://en.wikipedia.org/wiki/Comparison_of_speech_synthesizers

私が持っているのはそれだけです。

Google翻訳はeSpeakhttp ://support.google.com/translate/を使用します

于 2012-04-13T17:26:53.400 に答える