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:57] 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***)
 +
 +https://drive.google.com/file/d/11BvWNcp5EapeW4rbSJvl4MlPUhrz2DdD/view
  
 Copiamos el directorio en Assets/StreamingAssets/SpeechRecognitionSystem/model/spanish 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 134:
 Lo cambiamos en el script: Lo cambiamos en el script:
   public string LanguageModelDirPath = "SpeechRecognitionSystem/model/spanish";   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.+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 183: Line 187:
 Ahora nos faltaría añadir que cuando acabe de escuchar el texto, haga la llamada a OpenAI. Ahora nos faltaría añadir que cuando acabe de escuchar el texto, haga la llamada a OpenAI.
  
-Vamos al Script de +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.1677085042.txt.gz · Last modified: 2023/02/22 16:57 by jose