2010-05-11 21 views
10

Bir papağan, çevrede en sık kullanılan sözcükleri ve ifadeleri öğrenir, böylece onları uygunsuz anlarda tekrarlayabilir. Peki bir yazılım sürümünü nasıl oluşturursunuz? Bir mikrofona erişime sahip olduğunu ve sesin istediği şekilde kaydedilebileceğini varsayarsak, sonsuz kaynaklara ihtiyaç duymadan bunu nasıl kodlarsınız?Bir papağanı kodlamak için hangi algoritmayı kullanırdınız?

Hayal edebileceğiniz en iyi şey, sesi sesin sessizliklerini kullanarak bölmek ve sonra her birini bir kod listesi olarak kodlamak için bazı örüntü tanımalarını kullanmaktır; bunlarla karşılaştığınızda yenilerini depolar. Veri tabanındaki belirteç dizilerini ve sayım olaylarını karıştırırken, en sık kullanılan sözcük öbeklerinin bir resmini oluşturabilirsiniz. Fakat ibarelerdeki muazzam çeşitlilik göz önüne alındığında, bunun sadece büyük bir liste haline gelmesini nasıl önlersiniz? Ve eşleşecek çiftlerin sayısının, eşleşmenin eşleştirici doğasından kesinlikle çok fazla yanlış pozitif üreteceği kesin.

Nöral bir ağ kullanır mısınız, çünkü gerçek bir papağan bunu nasıl yönetir? Ya da büyük ölçekli kalıpları analog verilerle eşleştirmenin daha akıllıca bir yolu var mı?

+1

Yakınımdaki evcil hayvan dükkanında, papağan da içeriğin anlaşılmasını taklit etmesi için mağazaya girip çıkarken 'merhaba' ve 'hoşçakal' yazan bir papağan var.Makale –

cevap

0

belki - belki bir düzine ... öylesine bir ses geliyor demek öğrenmek isteyen hedef numaraya bir benzerlik maçı yapmak yerine, ayrı ayrı her bir klibi saklamak çalışmayın - Eğer yakın bir eşleşmesi Bir düzine kadar izliyorsunuz - ve bunlardan birine uygun bir desen eşleşmesi bulduğunuzda, bu yeni sesi depolanan versiyona göre ortalıyorsunuz - yeni bir sürüm veriyor ...

Eğer gelen ses saklanan bir şeyle eşleşmiyorsa - onu uzağa fırlat. nasıl olsa hedef ifadelerinin başlangıç ​​sayısını ...

ayırt - - kafamın üst kapalı

önyükleme zorlu kısmı olacaktır. ht

3

It's been done, sorta.

Düzeltme: Tamam, furbys çıktığında Gordian-knot türü bir çözüm önereceğim. Bir hoparlör ve bir mikrofon ile bir kutu bağlayın ve içine gerçek bir papağan yapıştırın. Bu demo için harika çalışacak ve sonra bir kez bazı risk sermayesi üzerinde ellerini var ne zaman net net sürümü üzerinde çalışmaya başlayabilirsiniz. Nöral ağlar (bu noktaya kadar uygulandıkları gibi) neredeyse işe yaramıyorlar, ancak ikinci turda demo yapmak için yeterince iyi olmalılar ve bu noktada başarısız olamayacak kadar büyük olacaksınız.

+0

: anahtar kelime ben furbys etrafında söylenenleri tekrarladı düşünce sadece aptal değilim yani "ortak" var: – interjay

+1

@interjay "onları etrafında söyleniyor kelimeleri tekrarladı ortak bir yanlış anlamadır oluştu" onlar. whew - Benim * furby tüm bu başka yerden küfürler var * tahmin! – MusiGenesis

2

Bunu taklit etmek için muhtemelen Markov zincirlerini kullanırdım.

Eğer doğal rastgele metin (ya da konuşma) üretmek için Markov zincirleri kullanmayın varsa önce, Fun With Markov Chains

2

nasıl engellerim kontrol bu sadece büyük liste haline?

Son sözlerin bir sonlu listesini ve sık rastlanan sözcüklerin sonsuz bir listesini tutabileceğinizi varsayalım. Papağan daha önce duymadığı bir kelimeyi duyarsa, "kısa süreli hafızasında" saklanır. Tekrar kelimeyi duyarsa, sözcüğü sık sözcükler listesine taşıyabilir ve süresiz olarak saklayabilir. Bir süre içinde, sadece papağanın sadece bir kez duyduğu kelimeleri veya sesleri içeren son sözcüklerin listesini temizleyebilirsiniz.

+2

Veya bunun yerine tasfiye ait bir cümlenin tekrar listesinin sonuna doğru iten bir FIFO önbellek kullanımı, bu nedenle önbellek artık kalır. –

İlgili konular