User Tools

Site Tools


informatica:realidad_virtual:unity:openai

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:realidad_virtual:unity:openai [2023/02/22 16:51] – [Openai] joseinformatica:realidad_virtual:unity:openai [2023/03/03 22:29] (current) jose
Line 111: Line 111:
 Instalación de Speech to text. Asset de unityStore que cuesta 49.89€ (no es dinero)\\ Instalación de Speech to text. Asset de unityStore que cuesta 49.89€ (no es dinero)\\
 https://assetstore.unity.com/packages/tools/audio/speech-recognition-system-187171 https://assetstore.unity.com/packages/tools/audio/speech-recognition-system-187171
 +
 +Lo importamos, se llama: "Speech Recognition System"
 +{{:informatica:realidad_virtual:unity:openai_12.png|}}
  
 Descargamos el modelo de lenguaje "Spanish" está en el fichero de documentación y es un enlace a Google Drive (***investigar para conseguir el original que creo que es de Apache***) Descargamos el modelo de lenguaje "Spanish" está en el fichero de documentación y es un enlace a Google Drive (***investigar para conseguir el original que creo que es de Apache***)
  
-Copiamos el directorio en Assets/StreamingAssets/SpeechRecognitionSystem/model/spanish +https://drive.google.com/file/d/11BvWNcp5EapeW4rbSJvl4MlPUhrz2DdD/view
  
 +Copiamos el directorio en Assets/StreamingAssets/SpeechRecognitionSystem/model/spanish
  
-Nos aparece en nuestros assets como "Speech Recognition System" 
  
 Creamos dos GameObjects: Creamos dos GameObjects:
   Reconocimiento   Reconocimiento
   Microfono   Microfono
-Y les asignamos los scripts: "SpeechRecognizer" y "Audio recorder"+Y les asignamos los scripts: "SpeechRecognitionSystem > Scripts" estos dos: "SpeechRecognizer" y "Audio recorder"
   Reconocimiento -> Script "SpeechRecognizer"   Reconocimiento -> Script "SpeechRecognizer"
   Microfono -> Script "Audio recorder"   Microfono -> Script "Audio recorder"
Line 130: Line 132:
 {{:informatica:realidad_virtual:unity:openai_05.png|}} {{:informatica:realidad_virtual:unity:openai_05.png|}}
  
-En el GameObject de Reconocimiento, cambiamos en el Script el modelo a Spanish y que la salida sea la pantalla de Entrada.+Lo cambiamos en el script: 
 +  public string LanguageModelDirPath = "SpeechRecognitionSystem/model/spanish"; 
 +Y por si acaso también en Unity, en el GameObject de Reconocimiento, cambiamos en el Script el modelo a Spanish y que la salida sea la pantalla de Entrada.La primera es de log, la segunda el partial (que es el que usaremos) y la tercera el final
  
 {{:informatica:realidad_virtual:unity:openai_06.png|}} {{:informatica:realidad_virtual:unity:openai_06.png|}}
Line 179: Line 183:
  
 Ahora añadimos las pantallas al Script de OpenAI Ahora añadimos las pantallas al Script de OpenAI
 +{{:informatica:realidad_virtual:unity:openai_07.png|}}
 +
 +Ahora nos faltaría añadir que cuando acabe de escuchar el texto, haga la llamada a OpenAI.
 +
 +Vamos al Script de "SpeechRecognizer" añadimos esta línea y arrastramos el GameObject donde está el script de chatGPT:
 +
 +    [SerializeField] private GameObject scriptopenai;
 +
 +{{:informatica:realidad_virtual:unity:openai_08.png|}}
 +
 +Ahora vamos donde detecta que hemos dejado de hablar, es en la línea:
 +<code>
 +if ( _recognitionFinalResultsQueue.TryDequeue( out string result ) ) {
 +    if ( result != string.Empty )
 +        ResultReceived?.Invoke( result );
 +}
 +</code>
 +Y añadimos la llamada a Sendreply:
 +
 +====== Text to Speech ======
 +Facturación de Google:\\
 +https://console.cloud.google.com/apis/api/texttospeech.googleapis.com/metrics?hl=es&project=unitytts-378321
 +
 +Usamos el Asset "Text to Speech using Google Cloud" que vale 4.98€:\\
 +https://assetstore.unity.com/packages/tools/utilities/text-to-speech-using-google-cloud-232515
 +
 +Se añade el Asset en Unity:
 +{{:informatica:realidad_virtual:unity:openai_09.png|}}
 +
 +Añadimos un Gameobject que se llame TextToSpeech. Le añadimos 3 componentes, un AudioSource y dos Scripts:
 +  GoogleTextToSpeech > Scripts > TextToSpeech (para la API)
 +  GoogleTextToSpeech > Scripts > Example > TextToSpeechExample (para la configuración)
 +
 +Cambiamos la línea del script TextToSpeechExample de TextMeshPro a TextMeshPro
 +  [SerializeField] private TextMeshPro inputField;
 +
 +Añadimos los siguientes campos en el GameObject TextToSpeech:
 +
 +  Voice: es-ES-Standard-B
 +  Text To Speech: (arrastramos el Gameobject TextToSpeech)
 +  Audio Source: (arrastramos el Gameobject TextToSpeech y quitamos Play On Awake)
 +  Input Field: (arrastramos la salida de Openai, que es el GameObject Pantalla Salida)
 +Quedaría mas o menos así:
 +{{:informatica:realidad_virtual:unity:openai_10.png|}}
 +
 +Ahora hacemos que cuando acabe la llamada a openAI, llame a TextToSpeech. En el script ChatGPT.cs añadimos estas líneas para poder llamar al método PressBtn() que es el que lanza TextToSpeech desde otro script:
 +
 +  using GoogleTextToSpeech.Scripts.Example;
  
 +  [SerializeField] private TextToSpeechExample textToSpeechExample ;
  
 +Ahora al final del SendReply() añadimos:
 +  textToSpeechExample.PressBtn();
 +  
 +Ahora señalamos el gameObject chatGPT y arrastramos el gameObject TextToSpeech dentro de: "Text To Speech Example"
 +{{:informatica:realidad_virtual:unity:openai_11.png|}}
informatica/realidad_virtual/unity/openai.1677084676.txt.gz · Last modified: 2023/02/22 16:51 by jose