So führen Sie einen Schnellstart für Google Cloud Text-to-Speech .NET in Unity aus

Was du machen willst

Google Cloud Text-to-Speech verfügt nicht über ein SDK für Unity. Führen Sie also Quickstart für .NET (https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries?hl=ja) in Unity aus. Der Quellcode wird unten hochgeladen. https://github.com/AzetaTakuya/GoogleCloudText-to-SpeechForUnity

Ergebnis

Es ist schwer zu verstehen, aber ich konnte sample.mp3 speichern. Wenn Sie sample.mp3 spielen, wird Hello, World! 結果.png

Implementierung

Umgebung

Verfahren

  1. Erstellen einer Authentifizierungsdatei
  2. Installieren Sie die .NET-Bibliothek (Nuget-Paket).
  3. Importieren Sie die Bibliothek in Unity
  4. Ändern Sie QuickStart für Unity
  5. Führen Sie aus

    * Das Verfahren folgt im Wesentlichen Offizielles Dokument: Schnellstart ..

① Authentifizierungsdatei erstellen

Offizielles Dokument: Schnellstart Wenn Sie die Schritte ① bis ④ ausführen, wird eine JSON-Datei generiert. Ich werde. Dieses Mal werden die Umgebungsvariablen aus dem Skript festgelegt, sodass Sie sie weglassen können.

(2) Installieren Sie die .NET-Bibliothek (Nuget-Paket)

NuGetForUnity ist eine bekannte Methode, um NugetPackage auf Unity zu installieren, aber ich verwende es aus religiösen Gründen nicht. Installation über die Visual Studio Package Manager-Konsole.

VisualStudio-Projekterstellung

Öffnen Sie Visual Studio und erstellen Sie eine Konsolen-App (.NET Framework) unter [Datei-> Neu-> Projekt]. Diesmal lautete der Projektname [TextToSpeechV1] und es wurde .NET Framework 4.7.1 verwendet. コンソールアプリ作成.png

Öffnen Sie nach dem Erstellen des Projekts die Package Manager-Konsole unter [Tools-> Nuget Package Manager-> Package Manager-Konsole]. パッケージマネージャ.png

Gehen Sie beim Öffnen der Package Manager-Konsole wie folgt vor:

PM> Install-Package Google.Cloud.TextToSpeech.V1 -Version 1.0.0

Aktivieren Sie nach Abschluss der Ausführung [TextToSpeechV1 (* erstelltes Projekt) / Pakete]. パッケージフォルダ.png

③ Importieren Sie die Bibliothek in Unity

Der Ordner enthält eine DLL. Ändern Sie sie daher so, dass sie in Unity importiert werden kann. Was den Arbeitsinhalt betrifft, (1) Verschieben Sie alle Dateien in [lib / net45 /] in anderen Ordnern als Grpc.Core.1.22.0 direkt unter pacakes und löschen Sie alle anderen Ordner als Grpc.Core.1.22.0. (2) Löschen Sie [Grpc.Core.1.22.0 / lib / netstandard2.0] und [Grpc.Core.1.22.0 / lib / netstandard1.5]. ③ Benennen Sie entweder grpc_csharp_ext.x64.dll oder grpc_csharp_ext.x84.dll in [Grpc.Core.1.22.0 / runtimes / win / native] in grpc_csharp_ext.dll um

packges編集後.png lib.png runtime.png

Erstellen Sie anschließend ein Unity-Projekt. Benennen Sie nach dem Erstellen des Unity-Projekts den zuvor geänderten Tempoordner in Plugins um und importieren Sie ihn in Unity. Damit ist der Import der Bibliothek in Unity abgeschlossen.

④ Ändern Sie den Schnellstart für Unity

Ändern Sie das Skript in Schnellstart für .NET für Unity-Add-Umgebungsvariablen Folgendes wurde getan.

using System.IO;
using UnityEngine;
using System;
using Google.Cloud.TextToSpeech.V1;

public class QuickStart : MonoBehaviour
{
    public string credentialsPath;
    public string saveFile;

    void Start()
    {
        #region Environment Variable
        if (!File.Exists(credentialsPath))
        {
            Debug.LogError("failure" + credentialsPath);
            return;
        }
        else
        {
            Debug.Log("success: " + credentialsPath);
        }
        Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", credentialsPath);
        #endregion

        #region QuickStart
        // Instantiate a client
        TextToSpeechClient client = TextToSpeechClient.Create();

        // Set the text input to be synthesized.
        SynthesisInput input = new SynthesisInput
        {
            Text = "Hello, World!"
        };

        // Build the voice request, select the language code ("en-US"),
        // and the SSML voice gender ("neutral").
        VoiceSelectionParams voice = new VoiceSelectionParams
        {
            LanguageCode = "en-US",
            SsmlGender = SsmlVoiceGender.Neutral
        };

        // Select the type of audio file you want returned.
        AudioConfig config = new AudioConfig
        {
            AudioEncoding = AudioEncoding.Mp3
        };

        // Perform the Text-to-Speech request, passing the text input
        // with the selected voice parameters and audio file type
        var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest
        {
            Input = input,
            Voice = voice,
            AudioConfig = config
        });

        // Write the binary AudioContent of the response to an MP3 file.
        using (Stream output = File.Create(saveFile))
        {
            response.AudioContent.WriteTo(output);
            Debug.Log($"Audio content written to file " + saveFile);
        }
        #endregion

    }

}

⑤ Ausführung

Geben Sie den Pfad der Authentifizierungsdatei in credentialsPath und den Pfad der Sicherungsdatei (.mp3) in saveFile ein. Die Audiodatei wird gespeichert.

Zusammenfassung

Ich hatte das Gefühl, dass es viele Leute gab, die sagten, dass es nicht gut gemacht werden könne, also schrieb ich es. Die Verwendung von GoogleCloutPlatform selbst scheint ziemlich kompliziert zu sein, daher werde ich es schreiben, wenn es eine Anfrage gibt. ~~ Warum funktioniert Google.Cloud.TextToSpeech.V1 -Version 2.0.0 nicht stabil ...? ~~ Wenn Sie Lust dazu haben, ist es mit anderen als Windows kompatibel.

Referenz

Keiner

Nachtrag

2020/09/09

Recommended Posts

So führen Sie einen Schnellstart für Google Cloud Text-to-Speech .NET in Unity aus
So führen Sie einen Schnellstart für Google Cloud Text-to-Speech .NET in Unity aus
So führen Sie Python im virtuellen Raum aus (für MacOS)
So definieren Sie mehrere Variablen in einer Python for-Anweisung
So führen Sie TensorFlow 1.0-Code in 2.0 aus
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
[Unity] So führen Sie ML-Agents Release 8 auch für transzendentale Anfänger aus [Windows]
Verwendung von Google Test in C-Sprache
Wie bekomme ich Stacktrace in Python?
So wechseln Sie die Python-Version in Cloud9
So führen Sie Maya Python-Skripte aus
So erstellen Sie mit YOLO in 3 Stunden ein Modell für die Objekterkennung
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
So erstellen Sie eine JSON-Datei in Python
So legen Sie Google Text & Tabellen in einem Ordner zusammen in einer TXT-Datei mit Python ab
So führen Sie CNN in 1 Systemnotation mit Tensorflow 2 aus
Verwendung der Google Cloud Translation API
So benachrichtigen Sie Discord-Kanäle in Python
So führen Sie LeapMotion mit Nicht-Apple Python aus
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So erstellen Sie eine Rest-API in Django
Wie schreibe ich ein benanntes Tupeldokument im Jahr 2020?
So zählen Sie Zahlen in einem bestimmten Bereich
So lesen Sie Dateien in verschiedenen Verzeichnissen
Anweisungen zum Verbinden von Google Colab mit der lokalen Laufzeit in einer Windows-Umgebung
Wie man eine öffentliche Funktion in Pytest verspottet
Verwendung von Docker zum Containerisieren Ihrer Anwendung und Verwenden von Docker Compose zum Ausführen Ihrer Anwendung in einer Entwicklungsumgebung
So legen Sie das Schema in den Django-Datenbankeinstellungen fest
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Ausführen des in Ansible Tower hinzugefügten Ansible-Moduls
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
So führen Sie Tests zusammen mit Python unittest aus
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Erstellen Sie ein Plug-In, das Python Doctest auf Vim ausführt (2)
[Go] So erstellen Sie einen benutzerdefinierten Fehler für Sentry
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
So laden Sie Dateien in Google Drive mit Google Colaboratory
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
So installieren Sie Google Test / Google Mock in Visual Studio 2019
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
So zeigen Sie DataFrame als Tabelle in Markdown an
Wie man setUp nur einmal in Python unittest ausführt
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
Wenn Sie in der for-Anweisung plt.save möchten
So führen Sie einen Befehl mit einem Unterprozess in Python aus
So führen Sie Django unter IIS auf einem Windows-Server aus
So verweisen Sie auf statische Dateien in einem Django-Projekt
Verwendung des japanischen Spacy-Modells mit Google Colaboratory
[Linux] Wie Sie Ihre IP in eine Variable einfügen
Führen Sie das Programm aus, ohne eine Python-Umgebung zu erstellen! !! (Erste Schritte mit Google Colaboratory)
Herstellen einer Verbindung zu Cloud SQL PostgreSQL auf der Google Cloud Platform aus einer lokalen Umgebung mit Java
Senden Sie mithilfe von Google Cloud Messaging für Chrome eine Nachricht vom Server an die Chrome-Erweiterung
Unterstützung von x-nullable für swagger in der jsonschema-Bibliothek von Python
So führen Sie ein geschultes Transformatormodell lokal auf CloudTPU aus
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras