PDA

View Full Version : کار با صدا رو ساختم



handvbnet
شنبه 14 اردیبهشت 1387, 17:17 عصر
سلام
این برنامه رو ساختم اما سورس رو فعلا نمی ذارم چون می خوام برم مثل بقیه کار هام ثبتش کنم.

فقط کسی ایده ای در بارش داره؟
الان فعلا دوتا کلمه رو میشناسه
دانلود کنید بعد باهاش کار کنید .
تا برنامه باز شد توی voice بگید سلام یا ممنون

امتحان کنید لطفا بعد ایدتونو بگید تا با هم همکار شیم

bita_naz
شنبه 14 اردیبهشت 1387, 19:16 عصر
منم یه همچین کاری نیاز دارم البته برای ثبت رکورد بوسیله Voice .
لطفا بیشتر توضیح بدید .آیا از کامپوننت خاصی استفاده کردید. کامپوننت Voice To Text واسه انگلیسی هست ولی فارسی رو نمی دونم.

مرسی

handvbnet
شنبه 14 اردیبهشت 1387, 19:53 عصر
تا هفته دیگه ثبت می شه و کدشو می ذارم..
از SpeechLib استفاده کردم.

rezaei manesh
یک شنبه 15 اردیبهشت 1387, 09:14 صبح
سلام
دانلود کردم اما اجرا نمی شه

linux
یک شنبه 15 اردیبهشت 1387, 11:03 صبح
سلام
این برنامه رو ساختم اما سورس رو فعلا نمی ذارم چون می خوام برم مثل بقیه کار هام ثبتش کنم.

فقط کسی ایده ای در بارش داره؟
الان فعلا دوتا کلمه رو میشناسه
دانلود کنید بعد باهاش کار کنید .
تا برنامه باز شد توی voice بگید سلام یا ممنون
امتحان کنید لطفا بعد ایدتونو بگید تا با هم همکار شیم

SpeechLib را می خواهی ثبت کنی؟!

Sub Zero
یک شنبه 15 اردیبهشت 1387, 13:39 عصر
SpeechLib را می خواهی ثبت کنی؟!
تا سورس کد ارائه نشه مشخص نیست که جناب handvbnet تا چه حد روی این برنامه کار کردن . لطفا زود قضاوت نکنید.
در ضمن من هم دانلود کردم اما اجرا نمی شه .

linux
یک شنبه 15 اردیبهشت 1387, 18:36 عصر
تا سورس کد ارائه نشه مشخص نیست که جناب handvbnet تا چه حد روی این برنامه کار کردن . لطفا زود قضاوت نکنید.
در ضمن من هم دانلود کردم اما اجرا نمی شه .
بله شما راست می فرمایید اینم سورس برنامش

Public Class Form1
Inherits Form
' Methods
Public Sub New()
AddHandler MyBase.Load, New EventHandler(AddressOf Me.Form1_Load)
Dim list As List(Of WeakReference) = Form1.__ENCList
SyncLock list
Form1.__ENCList.Add(New WeakReference(Me))
End SyncLock
Me.SpeechHandler = New Speeching
Me.CommandList = New Collection
Me.InitializeComponent
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If (disposing AndAlso (Not Me.components Is Nothing)) Then
Me.components.Dispose
End If
MyBase.Dispose(disposing)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
Me.sendpass
Me.Loghat("co'pi matn", 2)
Me.Loghat("salaam", 2)
Me.Loghat("mamnoon", 2)
Me.SpeechHandler.Ejra(Me.CommandList)
End Sub
<DebuggerStepThrough> _
Private Sub InitializeComponent()
Me.RichTextBox1 = New RichTextBox
Me.SuspendLayout
Dim point As New Point(12, &H27)
Me.RichTextBox1.Location = point
Me.RichTextBox1.Name = "RichTextBox1"
Dim size As New Size(&H133, &H72)
Me.RichTextBox1.Size = size
Me.RichTextBox1.TabIndex = 0
Me.RichTextBox1.Text = ""
size = New Size(5, 13)
Me.AutoScaleBaseSize = size
size = New Size(340, &HB6)
Me.ClientSize = size
Me.Controls.Add(Me.RichTextBox1)
Me.Name = "Form1"
Me.Text = "FF"
Me.ResumeLayout(False)
End Sub
Private Sub Label2_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Public Sub Loghat(ByVal Command As String, ByVal Number As Integer)
Me.CommandList.Add(New CommandHolder(Command, Number), Nothing, Nothing, Nothing)
End Sub
<STAThread> _
Public Shared Sub Main()
Application.Run(MyProject.Forms.Form1)
End Sub
Public Sub sendpass()
Me.SpeechHandler.passwords("farazjoon")
End Sub
Private Sub SpeechHandler_RecievedCommand(ByVal CommandID As Integer, ByVal Command As String)
Dim text As String = ""
Select Case Command
Case "co'pi matn"
Clipboard.SetText([text])
Exit Select
Case "salaam"
[text] = ([text] & ChrW(1587) & ChrW(1604) & ChrW(1575) & ChrW(1605))
Exit Select
Case "mamnoon"
[text] = ([text] & ChrW(1605) & ChrW(1605) & ChrW(1606) & ChrW(1608) & ChrW(1606))
Exit Select
End Select
Dim box As RichTextBox = Me.RichTextBox1
box.Text = (box.Text & [text] & " ")
End Sub

' Properties
Friend Overridable Property RichTextBox1 As RichTextBox
Get
Return Me._RichTextBox1
End Get
Set(ByVal WithEventsValue As RichTextBox)
Me._RichTextBox1 = WithEventsValue
End Set
End Property
Private Overridable Property SpeechHandler As Speeching
Get
Return Me._SpeechHandler
End Get
Set(ByVal WithEventsValue As Speeching)
Dim handler As RecievedCommandEventHandler = New RecievedCommandEventHandler(AddressOf Me.SpeechHandler_RecievedCommand)
If (Not Me._SpeechHandler Is Nothing) Then
RemoveHandler Me._SpeechHandler.RecievedCommand, handler
End If
Me._SpeechHandler = WithEventsValue
If (Not Me._SpeechHandler Is Nothing) Then
AddHandler Me._SpeechHandler.RecievedCommand, handler
End If
End Set
End Property

' Fields
Private Shared __ENCList As List(Of WeakReference) = New List(Of WeakReference)
<AccessedThroughProperty("RichTextBox1")> _
Private _RichTextBox1 As RichTextBox
<AccessedThroughProperty("SpeechHandler")> _
Private _SpeechHandler As Speeching
Private CommandList As Collection
Private components As IContainer
End Class

و این هم موتور تولید صداش speechhandler

Public Class Speeching
' Events
Public Event RecievedCommand As RecievedCommandEventHandler
' Methods
Public Sub New()
Dim VB$t_ref$L0 As List(Of WeakReference) = Speeching.__ENCList
SyncLock VB$t_ref$L0
Speeching.__ENCList.Add(New WeakReference(Me))
End SyncLock
Me.RecoContext = New SpSharedRecoContextClass
End Sub
Public Sub Ejra(ByVal CommandList As Collection)
If (Me.pass = 1) Then
Try
Dim VB$t_ref$L1 As IEnumerator
Me.Shoroo = Me.RecoContext.CreateGrammar(10)
Me.TopRule = Me.Shoroo.Rules.Add("TopLevelRule", (SpeechRuleAttributes.SRADynamic Or SpeechRuleAttributes.SRATopLevel), 1)
Me.Ghanoon = Me.Shoroo.Rules.Add("ListItemsRule", SpeechRuleAttributes.SRADynamic, 2)
Dim AfterCmdState As ISpeechGrammarRuleState = Me.TopRule.AddState
Dim VB$t_ref$S0 As Object = 0
Me.TopRule.InitialState.AddWordTransition(AfterCmd State, "", " ", SpeechGrammarWordType.SGLexical, "", 0, (VB$t_ref$S0), 1!)
VB$t_ref$S0 = 1
AfterCmdState.AddRuleTransition(Nothing, Me.Ghanoon, "", 1, (VB$t_ref$S0), 1!)
Me.Ghanoon.Clear
Try
VB$t_ref$L1 = CommandList.GetEnumerator
Do While VB$t_ref$L1.MoveNext
Dim x As CommandHolder = DirectCast(VB$t_ref$L1.Current, CommandHolder)
VB$t_ref$S0 = x.Number
Me.Ghanoon.InitialState.AddWordTransition(Nothing, x.Command, " ", SpeechGrammarWordType.SGLexical, x.Command, x.Number, (VB$t_ref$S0), 1!)
Loop
Finally
If TypeOf VB$t_ref$L1 Is IDisposable Then
TryCast(VB$t_ref$L1,IDisposable).Dispose
End If
End Try
Me.Shoroo.Rules.Commit
Me.Shoroo.CmdSetRuleState("TopLevelRule", SpeechRuleState.SGDSActive)
Catch exception1 As Exception
ProjectData.SetProjectError(exception1)
Dim Ex As Exception = exception1
ProjectData.ClearProjectError
End Try
End If
End Sub
Public Sub passwords(ByVal [text] As String)
If ([text] = "farazjoon") Then
Me.pass = 1
End If
End Sub
Private Sub RecoContext_Recognition(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechRecognitionType, ByVal Result As ISpeechRecoResult)
If Operators.ConditionalCompareObjectEqual(Result.Phr aseInfo.GrammarId, 10, False) Then
Dim VB$t_ref$S0 As RecievedCommandEventHandler = Me.RecievedCommandEvent
If (Not VB$t_ref$S0 Is Nothing) Then
VB$t_ref$S0.Invoke(Result.PhraseInfo.Properties.It em(1).Children.Item(0).Id, Result.PhraseInfo.Properties.Item(1).Children.Item (0).Name)
End If
End If
End Sub

' Properties
Private Overridable Property RecoContext As SpSharedRecoContext
Get
Return Me._RecoContext
End Get
Set(ByVal WithEventsValue As SpSharedRecoContext)
Dim handler As _ISpeechRecoContextEvents_RecognitionEventHandler = New _ISpeechRecoContextEvents_RecognitionEventHandler( AddressOf Me.RecoContext_Recognition)
If (Not Me._RecoContext Is Nothing) Then
Me._RecoContext.remove_Recognition(handler)
End If
Me._RecoContext = WithEventsValue
If (Not Me._RecoContext Is Nothing) Then
Me._RecoContext.add_Recognition(handler)
End If
End Set
End Property

' Fields
Private Shared __ENCList As List(Of WeakReference) = New List(Of WeakReference)
<AccessedThroughProperty("RecoContext")> _
Private _RecoContext As SpSharedRecoContext
Private e As Integer
Private Ghanoon As ISpeechGrammarRule
Private pass As Integer
Private ps As String
Private Shoroo As ISpeechRecoGrammar
Private TopRule As ISpeechGrammarRule
' Nested Types
Public Delegate Sub RecievedCommandEventHandler(ByVal CommandID As Integer, ByVal Command As String)
End Class

این هم یک وبلاگ که نمونه های خوبی داره http://blogs.msdn.com/coding4fun/archive/2006/10/31/909044.aspx
دوست عزیز مهم ساختن یک چیزی مانند speechlib هست که بتواند از روی نوشته فارسی متن را بخواند یا صدا را تبدیل به متن کند

rezaei manesh
دوشنبه 16 اردیبهشت 1387, 11:03 صبح
سلام
به دوستان
حقیقتش من هم که دیدم برنامه کار نمی کنه مشتاق شدم که سورس اونو ببینم و خواستم که سورس اونو باز کنم اما به دو دلیل اینکار رو نکردم اول اینکه نمی خواستم بهدونه اجازه اینکار رو بکنم می خواستم اول ازش بپرسم بعد و دلیل دوم هم این که وقت کافی نداشتم
اول می تونید که گله کنید که چرا این کار رو کرده اما در اصل چون برنامه طوری نیست که ازش استفاده تجاری بشه و هدف یاد گیری هستش من اگه جای شما بودم چون هدف یادگیری هستش از اقای لینوکس تشکر می کردم که وقت گذاشت و کدم رو بررسی کرد و الان ازش می خواستم که اشکالاتم رو به من بگه و کمکم کنه که اونو برطرف کنم نه بهش بگم دزد
در کل شما باید بدانید که exe برنامه دات نت یعنی سورس کد! مگر اینکه از ابزار هایی موجود استفاده کنی و کار طرف رو مشکل کنی که برای همچین برنامه هایی زیاد مهم نیست و...
در کل از هر 2 شما ممنون و سعی کنید که با کمک هم این رو کامل کنید.

linux
دوشنبه 16 اردیبهشت 1387, 12:44 عصر
سلام
به دوستان
حقیقتش من هم که دیدم برنامه کار نمی کنه مشتاق شدم که سورس اونو ببینم و خواستم که سورس اونو باز کنم اما به دو دلیل اینکار رو نکردم اول اینکه نمی خواستم بهدونه اجازه اینکار رو بکنم می خواستم اول ازش بپرسم بعد و دلیل دوم هم این که وقت کافی نداشتم
اول می تونید که گله کنید که چرا این کار رو کرده اما در اصل چون برنامه طوری نیست که ازش استفاده تجاری بشه و هدف یاد گیری هستش من اگه جای شما بودم چون هدف یادگیری هستش از اقای لینوکس تشکر می کردم که وقت گذاشت و کدم رو بررسی کرد و الان ازش می خواستم که اشکالاتم رو به من بگه و کمکم کنه که اونو برطرف کنم نه بهش بگم دزد
در کل شما باید بدانید که exe برنامه دات نت یعنی سورس کد! مگر اینکه از ابزار هایی موجود استفاده کنی و کار طرف رو مشکل کنی که برای همچین برنامه هایی زیاد مهم نیست و...
در کل از هر 2 شما ممنون و سعی کنید که با کمک هم این رو کامل کنید.
:) من همین که وقت کنم و این پستها را بخوانم و احیانا بعضی هایی که بلدم را جواب بدهم، کار بزرگی کردم.
من فکر کردم اولش این بنده خدا یک چیزی شبیه sapi درست کرده و می خواهد ثبتش کنه!

http://en.wikipedia.org/wiki/Speech_Application_Programming_Interface
که واقعا کار بزرگی هست و در حد دانش و تخصص یک نفر نیست و کار گروهی و سرمایه بزرگی می خواهد،بعدش دیدم برداشته speechlib را استفاده کرده و از این مسخره بازی ها ،به هر حال وقت گذاشتن و جواب یک چندتا تازه وارد کم سن و سال را دادند این مشکلات را هم دارد.

Sub Zero
دوشنبه 16 اردیبهشت 1387, 14:27 عصر
جناب Linux درسته که این سایت یه سایت حرفه ای و مرجع محسوب میشه ، اما فکر نکنم با دیدی که شما نسبت به این تاپیک داشتید کس دیگه ای این شجاعت رو پیدا کنه که یافته های خودش رو هر چند کوچک و پیش پا افتاده ، به دیگران معرفی کنه . ممکنه از نظر من این اقا کار جالبی انجام داده باشه و اولین باری باشه که با این مورد اشنا میشم، اما از نظر شما این برنامه قدیمی و تکراری باشه .و این که یه برنامه تا چه اندازه حرفه ای و پروفشناله یک امر نسبیه .
در ضمن من توهین دوستمون رو هم پای تازه وارد بودنش می زارم و اینکه با ساختار سایت اشنا نیست . والا به شدت با این بحثها مخالفم .

handvbnet
دوشنبه 16 اردیبهشت 1387, 18:01 عصر
به خدا می گفتید بهم بده می دادم . من قبلا در این انجمن بودم . اما اخراجم کردن.الان دوباره عضو شدم.
کلی از این برنامه ها ساختم . اما به خدا هرکی خاسته بهش دادم. ولی ازش خواهش کردم که به کسی نده..

در ضمن لینوکس عزیز . من با اینکه سنم کمه . اما برنامه ساختم که آموزش و پرورش ازم قدر دانی کرد. فکر کنم از خیلی جاها پر ارزش تر باشه . ممنون :) .

vcldeveloper
دوشنبه 16 اردیبهشت 1387, 18:10 عصر
پست های بی ربط و توهین ها پاک شدند. اگر همینطوری ادامه بدید، ناچار میشیم هم بعضی از کاربرها را جریمه کنیم، هم تاپیک را قفل کنیم!

linux
دوشنبه 16 اردیبهشت 1387, 18:45 عصر
به خدا می گفتید بهم بده می دادم . من قبلا در این انجمن بودم . اما اخراجم کردن.الان دوباره عضو شدم.
کلی از این برنامه ها ساختم . اما به خدا هرکی خاسته بهش دادم. ولی ازش خواهش کردم که به کسی نده..
در ضمن لینوکس عزیز . من با اینکه سنم کمه . اما برنامه ساختم که آموزش و پرورش ازم قدر دانی کرد. فکر کنم از خیلی جاها پر ارزش تر باشه . ممنون :) .
این برنامه هایی که می سازید برای شما جنبه آموزش داره، خیلی هم خوب است.
مثال از این برنامه زیاد هست تو اینترنت ، سورس شما هم راستش نه به درد من می خوره نه برنامه نویسان دیگه.
من اولش فکر کردم شما یک چیزی شبیه sapi (http://en.wikipedia.org/wiki/Speech_Application_Programming_Interface)درست کردید که خیلی برام عجیب بود که کسی بتونه این را انجام بده یعنی آنقدر پروژه سنگین هست که حتی برای نمونه من شرکت ایرانی هم ندیدم که رو این مطلب کار کنه.اصل پروژه این هست که شما متن فارسی را با همین خطی که می نویسیم به کامپیوتر بدهید و متن برای شما خوانده شود ، که مشکلات تکنییکی فراوانی در این راه هست. و پروژه دیگر این هست که کاربر فارسی حرف بزند و برنامه سخنان کاربر را تشخیص داده و آنها را تبدیل به نوشته فارسی کند.
انجام هر دو اینها از عهده شما خارج هست و نیاز به کار تیمی و تخصصهای مختلف داره.
اینکه شما برداشتید که فایل dll که speech engine برای زبان انگلیسی هست و توسط ماکروسافت تولید شده و در حقیقت همون sapi را استفاده کردید شاید برای شما جالب باشه ولی اینکه بیاید و بگید که من برنامه ساختم و می خواهم ببرم ثبت کنم و از این حرفها کلا خنده دار هست. مثل این هست که من بیام لینک جستجوی گوگل را توی وبسایتم قرار بدم و برم بگم من موتور جستجو ساختم!

این مثالهاش http://blogs.msdn.com/coding4fun/archive/2006/10/31/909044.aspx
و
http://www.vbforums.com/showthread.php?t=352101

به هر حال مواظب حرفاتون و رفتارتون باشید که اخراج نشید.حداقل موقع جواب دادن به پست یک نگاه این کنار بندازید و تاریخ عضویت دوستان را هم نگاه کنید.

bita_naz
دوشنبه 16 اردیبهشت 1387, 19:14 عصر
نرم افزار نویسا چطوریه پس؟؟/

qwertyuiopasdfghjklzxcvb
چهارشنبه 27 شهریور 1387, 10:25 صبح
با سلام
جناب اینوکس در مورد سورسی که گذاشتین بیشتر توضیح بدین چون من اونو دانلود کردم و داخل یه پروژه استفاده کردم و بعد DLL اونو اضافه کردم ولی کار نکرد.
با تشکر

saghari
شنبه 30 شهریور 1387, 04:08 صبح
با سلام
اکه دوستان عزیز آموزش زبان Tell me more رو دیده باشند، یک قسمت داره که کاربر جمله ای رو میگه و نرم افزار تلفظ کاربر رو با تلفظ صحیح مقایسه میکه و در انتها یک گراف مقایسه ای و درصد انطباق رو به کاربر اعلام میکنه. من دنبال یه چنین کامپوننتی هستم (البته اگه بصورت کامپوننت پیدا بشه) قیمتش هم زیاد برام مهم نیست. اگه کامپوننتی که این کار یا چیزی شبیه این رو انجام بده سراغ دارید ممنون میشم راهنماییم کنید.
قبلا از توجه شما ممنونم