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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

1320閲覧

Unity)アセンブリ参照がありません

navesanta

総合スコア198

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/04/21 07:34

Unityで会話をマイクで集音してテキストにするアプリを作りたく
AzureのSpeech SDKを使おうとしたところ下記エラーが出ました。

行った事)
1、Azureのアカウント作成
2、サブスクリプション キーの取得
3、Speech SDKのインポート
4、コードの記述(下記)
4のコードの記述をしたところ下記のエラーが出ました。
「アセンブリ参照がありません」とはどういうことでしょうか?
またどうすればエラーが解消されるでしょうか?

環境)
PC: mac
Unity2018.2
言語:C#

Assets/Scripts/HelloWorld.cs(3,17): error CS0234: The type or namespace name 'CognitiveServices' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

きちんとインポートもされています。
イメージ説明
SpeechToTextScript.cs

using UnityEngine; using UnityEngine.UI; using Microsoft.CognitiveServices.Speech; #if PLATFORM_ANDROID using UnityEngine.Android; #endif public class SpeechToTextScript : MonoBehaviour { // Hook up the two properties below with a Text and Button object in your UI. public Text outputText; public Button startRecoButton; private object threadLocker = new object(); private bool waitingForReco; private string message; private bool micPermissionGranted = false; #if PLATFORM_ANDROID private Microphone mic; #endif public async void ButtonClick() { var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); // Make sure to dispose the recognizer after use! using (var recognizer = new SpeechRecognizer(config)) { lock (threadLocker) { waitingForReco = true; } var result = await recognizer.RecognizeOnceAsync().ConfigureAwait(false); // Checks result. string newMessage = string.Empty; if (result.Reason == ResultReason.RecognizedSpeech) { newMessage = result.Text; } else if (result.Reason == ResultReason.NoMatch) { newMessage = "NOMATCH: Speech could not be recognized."; } else if (result.Reason == ResultReason.Canceled) { var cancellation = CancellationDetails.FromResult(result); newMessage = $"CANCELED: Reason={cancellation.Reason} ErrorDetails={cancellation.ErrorDetails}"; } lock (threadLocker) { message = newMessage; waitingForReco = false; } } } void Start() { if (outputText == null) { UnityEngine.Debug.LogError("outputText property is null! Assign a UI Text element to it."); } else if (startRecoButton == null) { message = "startRecoButton property is null! Assign a UI Button to it."; UnityEngine.Debug.LogError(message); } else { // Continue with normal initialization, Text and Button objects are present. #if PLATFORM_ANDROID message = "Waiting for mic permission"; if (!Permission.HasUserAuthorizedPermission(Permission.Microphone)) { Permission.RequestUserPermission(Permission.Microphone); } #else micPermissionGranted = true; message = "Click button to recognize speech"; #endif startRecoButton.onClick.AddListener(ButtonClick); } } void Update() { #if PLATFORM_ANDROID if (!micPermissionGranted && Permission.HasUserAuthorizedPermission(Permission.Microphone)) { micPermissionGranted = true; message = "Click button to recognize speech"; } #endif lock (threadLocker) { if (startRecoButton != null) { startRecoButton.interactable = !waitingForReco && micPermissionGranted; } if (outputText != null) { outputText.text = message; } } } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

fiveHundredさんのご指摘のように、確認するべきはクイック スタート:音声を認識する、Unity - Speech Services - Azure Cognitive Services | Microsoft Docsの章かと思います。そしてご質問者さんは、おそらくすでにそこをご覧になってセットアップを進めたものとお察しします。
Unityの場合、C#のソリューションファイルやプロジェクトファイルのセットアップはUnity側が自動的に行ってくれるはずですので、ご自身で参照の追加を行わなくとも(むしろ勝手にやるべきではないかと思います)パッケージがご使用の環境に対応していればインポートするだけでC#スクリプト中で機能を使用できるようになるはずです。

「クイック スタート:音声を認識する」のページをもう一度ご確認いただきたいのですが...

注意
Unity 用 Speech SDK は、現在ベータ版です。 x86 および x64 (スタンドアロンのデスクトップ アプリケーションまたはユニバーサル Windows プラットフォーム)、Android (ARM32/64、x86) をサポートしています。

との記述があります。パッケージ内を見てみますと、どうやらmacOS向けの「bundle」形式のファイルは見当たらないようでした。実際にプロジェクトにインポートしてみたところ、Windows 10 バージョン1803、Unity 2019.1.0f2ではパッケージをインポートするだけでMicrosoft.CognitiveServices.Speechが使用可能になりましたが(サブスクリプションキーの取得まではやっておらず、ただ名前空間に関するエラーが出ないことを確認しただけですが...)、macOS Mojave バージョン10.14.4、Unity 2019.1.0f2ではご質問者さん同様にCS0234のエラーが発生しました。

Mac上で使うのは諦めて他のソフトウェアを探すか、あるいはMac向けにもC++Objective-CでのSDKがあるようですので、それらを使ってご自身でMac用ネイティブプラグインを作る...なんてことも可能かもしれません。

投稿2019/04/22 10:41

Bongo

総合スコア10807

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

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

navesanta

2019/04/22 20:22

分かりやすい回答ありがとうございます。 理解しました。 当初Visual Studioを使っていないためにおきた不具合だと思っていました。 他にもソフトウェアはあるのでMacで使えるものを使います。 これからもよろしくお願いします。
guest

0

google翻訳
型または名前空間名 'CognitiveServices'が名前空間 'Microsoft'に存在しません

といってますが。

クイック スタート:.NET Framework (Windows) 用 Speech SDK を使用して音声を認識する

投稿2019/04/21 12:53

編集2019/04/21 13:00
y_waiwai

総合スコア87747

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

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

navesanta

2019/04/22 00:07

>名前空間名 'CognitiveServices'が名前空間 'Microsoft'に存在しません 説明不足ですみません。当然名前空間が存在しないというメッセージは分かっています。 知りたいのはMicrosoftにCognitiveServicesがないとのことですが ネットで調べると参考コードなどで使われており、ないという意味のエラーが分かりません。 よくあるのはAssetsがインポートされていないために使えないためにこういった メッセージが出る事はよくありますが 上の画像の通りSpeechSDKは問題なくAssets内に設置されています。 そこで気になるのが「アセンブリ参照がありません」です。 アセンブリ参照はUnityでプロジェクトに新規で追加することができるようですが 新規で追加してもエラーは解消されませんでした。 >クイック スタート:.NET Framework (Windows) 用 こちらのリンクの意味がよく分かりませんでした。 Windows用とのことですが使っているPCは記載している通りMacです。 気になる点としてはVisual Studioを使う必要があるような気はしました。 ちなみに現状エディタは重いのが嫌なのでSublimeTextを使っています。 ここの部分分かる方みえましたらお教え下さい。
y_waiwai

2019/04/22 09:44

提示したリンクをよく読んでください プロジェクトに、参照を追加する必要があります 添えれを怠っているため、そのエラーが出てます。
fiveHundred

2019/04/22 09:58

私は原因は分かりませんが、一言だけ。 > y_waiwaiさん 今回はUnityなので、単に.NETのやり方でやってもうまく動作しないと思います。 そもそも、挙げているURLとは別にUnityでのやり方が記載されているページがあるので、そちらを提示すべきだと思います。 https://docs.microsoft.com/ja-jp/azure/cognitive-services/speech-service/quickstart-csharp-unity (とは言いつつも、navesantaさんがすでに試した内容な気もしますが)
navesanta

2019/04/22 20:23

回答ありがとうございます。 問題が解決しました。これからもよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問