質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1874閲覧

c# 音声読み上げプログラムで

Wood

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/06/10 02:11

編集2018/06/10 02:20

ハンドルされていない例外: System.Runtime.InteropServices.COMException: CLSID {D941651C-44E6-4C17-BADF-C36826FC3424} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154 クラスが登録されていません (HRESULT からの例外:0x80040154 (REGDB_E_CLASSNOTREG))。
場所 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
場所 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
場所 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
場所 System.Activator.CreateInstance(Type type, Boolean nonPublic)
場所 System.Activator.CreateInstance(Type type)
場所 Speech..ctor() 場所 C:\Users\owner\AppData\Local\Temporary Projects\Jarvis\Speech.cs:行 14
場所 Jarvis.Program.Main(String[] args) 場所 C:\Users\owner\AppData\Local\Temporary Projects\Jarvis\Program.cs:行 16

このエラー文がでてきて前に進むことができません。
読んでいる感じ、なにか足りないものがあるのかなと思っているのですが、なにが足りないのでしょうか...

実現したいことは、こんにちは と喋らせてみたいだけなのですが、、、
誰かわかる人いませんか!!

C#

1using System; 2using SpeechLib; 3 4public class Speech 5{ 6 //合成音声libraryの読み込み 7 private SpeechLib.SpVoice voice = null; 8 private bool hit = false; 9 10 //スピーチの読み上げ初期化 11 public Speech() 12 { 13 //合成音声を初期化 14 this.voice = new SpeechLib.SpVoice(); 15 16 17 //日本語で読み上げるengineを探し出す 18 foreach (SpObjectToken voicePerson in this.voice.GetVoices()) 19 { 20 string lang = voicePerson.GetAttribute("Language"); 21 if (lang == "411") 22 { 23 this.voice.Voice = voicePerson; 24 hit = true; 25 break; 26 } 27 } 28 29 30 31 } 32 33 public void SpeechText(string Text) 34 { 35 if (!this.hit) 36 { 37 Console.WriteLine("Harukaをインストールしてください。"); 38 Console.ReadKey(); 39 } 40 else 41 { 42 Console.WriteLine(Text); 43 this.voice.Speak(Text); 44 Console.ReadKey(); 45 } 46 } 47} 48

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2018/06/10 02:18

何のライブラリを使ってて、どのようなソースでエラーが出るのでしょうか?
Wood

2018/06/10 02:19

参照したのは、Microsoft Speech Object Libraryです。
guest

回答1

0

ベストアンサー

OSが64bitで、インストールしたMicrosoft Speech Platform Runtimeが64bitだとしたら、プログラムのプラットフォームもAnyCPUではなくx64としてください。

当方はこれでエラーがなくなり、提示されたコードで喋りました。

x86のMicrosoft Speech Platform Runtimeも追加インストールしたところ、AnyCPUでもOKとなりましたが
開発環境以外の実行でどうなるかは確認していませんので、配布をお考えでしたら注意が必要です。

投稿2018/06/10 03:06

編集2018/06/10 03:16
YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問