- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
#Sine wave calculations by vegaseat.
#The program will take in the current time that the computer has, and turn that into a
#tone that is unique to that moment in time. It then makes an accompaning graph to
#view for easier comparison of the sound and an interesting view of the sound heard.
from Tkinter import *
from struct import pack
from math import sin, pi
import math
import time
import os
def wave():
#time based variables
t = time.strftime("%S", time.localtime())
ti = time.strftime("%M", time.localtime())
tis = float(t)
tis = tis / 100
tim = float(ti)
tim = tim / 100
root = Tk()
root.title("The moment")
#variables for canvas
width = 800
height = 600
center = height//2
x_increment = 2
# width stretch
x_factor1 = tis
x_factor2 = tim
# height stretch
y_amplitude = 50
#new canvas
c = Canvas(width=width, height=height, bg="black")
c.pack()
str1 = "sin(x)=white"
c.create_text(10, 20, anchor=SW, text=str1)
center_line = c.create_line(0, center, width, center, fill="red")
# create the coordinate list for the sin() curve, have to be integers
xy1 = []
xy2 = []
for x in range(400):
# x coordinates
xy1.append(x * x_increment)
xy2.append(x * x_increment)
# y coordinates
xy1.append(int(math.sin(x * x_factor1) * y_amplitude) + center)
xy2.append(int(math.sin(x * x_factor2) * y_amplitude) + center)
#create the lines
sinS_line = c.create_line(xy1, fill="white")
sinM_line = c.create_line(xy2, fill="yellow")
root.mainloop()
def au_file(name, freq, freq1, dur, vol):
fout = open(name, "wb")
# header needs size, encoding=2, sampling_rate=8000, channel=1
fout.write(".snd" + pack(">5L", 24, 8*dur, 2, 8000, 1))
factor = 2 * pi * freq/8000
factor1 = 2 * pi * freq1/8000
# write data
for seg in range(8 * dur):
# sine wave calculations
sin_seg = sin(seg * factor) + sin(seg * factor1)
fout.write(pack("b", vol * 64 * sin_seg))
fout.close()
#time based variables
t = time.strftime("%S", time.localtime())
ti = time.strftime("%M", time.localtime())
tis = float(t)
tis = tis * 100
tim = float(ti)
tim = tim * 100
os.startfile("timeSound.au")
#running it using main.
def main():
au_file(name="timeSound.au", freq=tim, freq1=tis, dur=1000, vol=1.0)
wave()
main()
这是我的程序,它会记录分钟并让它们根据时间(某种程度)产生正弦波音调。它创建声音文件然后播放它。我想要的是实时流式传输正弦波,其影响时间可低至毫秒,以获得恒定的波动音调。那可能吗?如果是这样,我可以使用什么来让声音实时播放,如何将变量连接到时间并使其本身实时播放?
最佳答案
以下是您可以采用的连续变化频率的方法:
def gen_scale(samples_per_wave, samples_per_change):
pi2 = 2 * math.pi
rad = 0
while (samples_per_wave > 1):
for i in range(0, samples_per_change):
yield math.sin(rad)
rad = rad + pi2 / samples_per_wave
if (rad > pi2):
rad = rad - pi2
samples_per_wave = samples_per_wave - 1
samples_per_wave
基本上是 Hz
测量值的倒数(此声音的频率会增加)。 samples_per_change
是生成器在增量调整频率之前生成的样本数量。
关于python - 根据时间相关变量不断变化的正弦音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372980/
我是 Arduino 的新手(因为这个周末我必须学习它来完成一个学校项目)并且我无法让我的压电扬声器为闹钟发出声音。当草图运行时,一切正常。 LED 闪烁,但蜂鸣器不发声,这很奇怪,因为 LED 和蜂
我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮....
我正在尝试制作一个可以在 Octave 音阶中水平滚动的钢琴应用程序。下面是另一个我尝试做的钢琴应用程序的示例。箭头在钢琴上滚动 Octave 。我已经了解了scrollview,但是似乎只允许通过滑
我正在我的 Android 应用程序中使用文本转语音 - TTS。我已经粘贴了下面的代码。TTS 工作正常,但是它说的语音/文本不是很清楚。它说的真的快速,以至于它不是完全可以理解的.. 我尝试设置
我正在调用一个带有号码的通话应用程序,然后通过 发送 dtmf 音 String number = "tel:+1234567,890#"; Intent c1 = new Intent(androi
我正在开展一个项目,该项目要求我的应用能够在通话期间以语音的上行链路频率发送 DTMF 音。 我的两个条件是: 我们不使用定制的 Android 平台 我们不需要root手机 我花了几天时间做功课,并
我需要制作一个IVR -auto dialer应用程序,它 => 调用免费电话 => 然后选择一个选项继续 => 然后输入一些代码 => 然后几秒钟后(一些广告/说 30 秒)需要输入另一个选项 前三
在我的 Twilio基于应用程序我通过 Twilio REST 创建拨出电话API。 当目标方响应时,我将他/她放到最近创建的 session 中。 在让他/她参加 session 之前,如何播放特定
Twilio 未从 Skype 检测到我的 DTMF 音。 我们用 twilio 建立了一个 IVR 系统,客户必须输入一个 7位客户编号。 我们的一些客户使用 voip 电话, 因此我们需要确保 t
我想在我的应用程序中以编程方式发送DTMF 铃声。在搜索时我找到了一个方法 public void playDtmfTone(字符数字) 这是 google 在 android 中发送 DTMF 的新
我读过一些有关 Android 中 DTMF 的文章。我想不可能通过流式传输 .wav 文件(或其他格式)进行自动电话调用并检测其他人(调用接收者)的输入。 我想制作一个应用程序来调用我/或其他人,并
我是一名优秀的程序员,十分优秀!