Simple Voice Engine Application With Sound Player Class...

Posted at : Mar/28/2007
19975 Views

Pernahkah membayangkan bagaimana caranya membuat aplikasi seperti mesin suara antrian di bank? Di artikel ini saya buat aplikasi sederhana mesin suara antrian dengan memanfaatkan SoundPlayer Class yang terdapat di dalam namespace System.Media yang digunakan untuk execute file .wav.

Secara logika sebenarnya sederhana. Kita buat file .wav yang merekam suara manusia untuk masing-masing angka, misalnya file 0.wav yang merekam suara "nol", 1.wav yang merekam suara "satu"...kemudian angka yang muncul di mesin antrian / output yang diambil dari tabel atau file .xml atau file .txt  kita baca per karakter, dan per karakter tersebut nantinya di cocokkan dengan file name .wav yang sudah kita buat sebelumnya.

Untuk membuat delay pada detik tertentu kita bisa memanfaatkan Sleep method dari Thread class, sehingga jeda satu suara yang mewakili satu angka tidak terlalu cepat. Aplikasi yang saya buat ini tentu hanya konsep saja, anda bisa mengembangkannya lebih lanjut. Misalnya data antrian terakhir diambil dari datasource tertentu, validasi untuk number yang akan dibaca, maksimum angka yang diperbolehkan, dsb.

Untuk aplikasi ini nomor yang akan dibaca yaitu di input lewat textbox yang hanya bisa menerima unassign integer (angka positif saja) dan maksimum hanya empat karakter (empat angka), input juga hanya boleh angka. File wav yang digunakan di aplikasi ini juga hanya file wav contoh yang diambil dari windows :) yang sudah saya rename berdasarkan urutan angka dan saya simpan di folder bin. Anda bisa merubah lokasi penempatan file wav nya tentunya. 

Sudah pasti dalam real application anda harus ganti dengan file wav suara sungguhan yang menyuarakan angka-angkanya. Ok...Here's the code...you can download the code sample from the link above...enjoy it !!

Windows form screen shot :

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.ComponentModel;
   4:  using System.Data;
   5:  using System.Drawing;
   6:  using System.Text;
   7:  using System.Windows.Forms;
   8:  using MyMedia = System.Media;
   9:   
  10:  namespace VoiceEngine
  11:  {
  12:      public partial class frmVoiceEngine : Form
  13:      {
  14:          public frmVoiceEngine()
  15:          {
  16:              InitializeComponent();
  17:          }
  18:   
  19:          private void GetWav(string Number)
  20:          {
  21:              using (MyMedia.SoundPlayer mySoundPlayer =
  22:                  new MyMedia.SoundPlayer())
  23:              {
  24:                  switch (Number)
  25:                  {
  26:                      case "0":
  27:                          mySoundPlayer.SoundLocation = "0.wav";
  30:                          break;
  31:                      case "1":
  32:                          mySoundPlayer.SoundLocation = "1.wav";
  35:                          break;
  36:                      case "2":
  37:                          mySoundPlayer.SoundLocation = "2.wav";
  40:                          break;
  41:                      case "3":
  42:                          mySoundPlayer.SoundLocation = "3.wav";
  45:                          break;
  46:                      case "4":
  47:                          mySoundPlayer.SoundLocation = "4.wav";
  50:                          break;
  51:                      case "5":
  52:                          mySoundPlayer.SoundLocation = "5.wav";
  55:                          break;
  56:                      case "6":
  57:                          mySoundPlayer.SoundLocation = "6.wav";
  60:                          break;
  61:                      case "7":
  62:                          mySoundPlayer.SoundLocation = "7.wav";
  65:                          break;
  66:                      case "8":
  67:                          mySoundPlayer.SoundLocation = "8.wav";
  70:                          break;
  71:                      case "9":
  72:                          mySoundPlayer.SoundLocation = "9.wav";
  75:                          break;
  76:                  }
  33:                  mySoundPlayer.Play();
  34:                  System.Threading.Thread.Sleep(1000);
  77:              }
  78:          }
  79:   
  80:          private void txtNumber_Validating(object sender,
  81:              CancelEventArgs e)
  82:          {
  83:              uint result;
  84:              if(uint.TryParse(txtNumber.Text,out result) == false)
  85:              {
  86:                  e.Cancel = true;
  87:                  MessageBox.Show("Enter valid number", "Warning",
  88:                      MessageBoxButtons.OK, MessageBoxIcon.Information);
  89:                  txtNumber.Focus();
  90:              }
  91:          }
  92:   
  93:          private void btnPlay_Click(object sender, EventArgs e)
  94:          {
  95:              this.Enabled = false;
  96:              foreach (char aChar in txtNumber.Text.ToCharArray())
  97:              {
  98:                  string aNumber = aChar.ToString();
  99:                  GetWav(aNumber);
 100:              }
 101:              this.Enabled = true;
 102:          }
 103:   
 104:          private void btnClose_Click(object sender, EventArgs e)
 105:          {
 106:              this.Dispose();
 107:          }
 108:   
 109:      }
 110:  }


InfoEbook-ebook yang tersedia yang dapat dipesan secara langsung atau melalui google play store.



ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Co-Founder & IT Trainer at Native Enterprise | Microsoft Azure Data Scientist | IBM RAG & Agentic AI | IBM Data Science & Data Analyst | Python Certified (PCEP, PCAP) | MOS, MTA, Xamarin Certified, ex MCT | ex MVP

CERTIFICATIONS

Microsoft Certified Associate
IBM RAG and Agentic AI Professional
IBM Data Science Professional IBM Data Analyst Professional
PCAP Associate Python Programmer Certified PCEP Entry Level Python Programmer Certified
Xamarin Certified
MOS 2007
MCPD MCTS
MCAD.NET

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2026   Rully Yulian MF   All rights reserved.