Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by RankoR · Jun 22, 2013 at 01:14 PM · audiosourcemicrophone

Microphone — detect speech start & end

Is it possible to detect when user stops to speak to the microphone? I use this code, but I don't want user to press button, I want it to be stopped or started automatically. using UnityEngine;
using System.Collections;

 [RequireComponent (typeof (AudioSource))]  
   
 public class SingleMicrophoneCapture : MonoBehaviour   
 {  
     //A boolean that flags whether there's a connected microphone  
     private bool micConnected = false;  
   
     //The maximum and minimum available recording frequencies  
     private int minFreq;  
     private int maxFreq;  
   
     //A handle to the attached AudioSource  
     private AudioSource goAudioSource;  
   
     //Use this for initialization  
     void Start()   
     {  
         //Check if there is at least one microphone connected  
         if(Microphone.devices.Length <= 0)  
         {  
             //Throw a warning message at the console if there isn't  
             Debug.LogWarning("Microphone not connected!");  
         }  
         else //At least one microphone is present  
         {  
             //Set 'micConnected' to true  
             micConnected = true;  
   
             //Get the default microphone recording capabilities  
             Microphone.GetDeviceCaps(null, out minFreq, out maxFreq);  
   
             //According to the documentation, if minFreq and maxFreq are zero, the microphone supports any frequency...  
             if(minFreq == 0 && maxFreq == 0)  
             {  
                 //...meaning 44100 Hz can be used as the recording sampling rate  
                 maxFreq = 44100;  
             }  
   
             //Get the attached AudioSource component  
             goAudioSource = this.GetComponent<AudioSource>();  
         }  
     }  
   
     void OnGUI()   
     {  
         //If there is a microphone  
         if(micConnected)  
         {  
             //If the audio from any microphone isn't being captured  
             if(!Microphone.IsRecording(null))  
             {  
                 //Case the 'Record' button gets pressed  
                 if(GUI.Button(new Rect(Screen.width/2-100, Screen.height/2-25, 200, 50), "Record"))  
                 {  
                     //Start recording and store the audio captured from the microphone at the AudioClip in the AudioSource  
                     goAudioSource.clip = Microphone.Start(null, true, 20, maxFreq);  
                 }  
             }  
             else //Recording is in progress  
             {  
                 //Case the 'Stop and Play' button gets pressed  
                 if(GUI.Button(new Rect(Screen.width/2-100, Screen.height/2-25, 200, 50), "Stop and Play!"))  
                 {  
                     Microphone.End(null); //Stop the audio recording  
                     goAudioSource.Play(); //Playback the recorded audio  
                 }  
   
                 GUI.Label(new Rect(Screen.width/2-100, Screen.height/2+25, 200, 50), "Recording in progress...");  
             }  
         }  
         else // No microphone  
         {  
             //Print a red "Microphone not connected!" message at the center of the screen  
             GUI.contentColor = Color.red;  
             GUI.Label(new Rect(Screen.width/2-100, Screen.height/2-25, 200, 50), "Microphone not connected!");  
         }  
   
     }  
 }  
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

16 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

record dynamic length from microphone 1 Answer

Recording audio from another audio source 1 Answer

How to calculate buffer size of OnAudioFilterRead? 1 Answer

Mute microphone feedback but keep signal 0 Answers

NullReferenceException on AudioSource in prefab 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges