小编nod*_*del的帖子

使麦克风忽略来自 AVSpeechSynthesizer 的音频

受到这个问题的启发(没有得到答案)。

上下文:我有一个 (swiftUI) 视图,它有 2 个按钮和一个文本字段。一键打开麦克风并使用 SFSpeechrecognizer 将语音转换为文本(并填充文本字段)。然后将其发送到我的服务器,我的应用程序会收到一个响应,该响应通过 AVSpeechSynthesizer 发出。麦克风始终处于打开状态,因为该应用程序应该是对话式的。因此,语音输出被麦克风捕获。

问题:我不想在说出响应时禁用麦克风,因为我通过麦克风控制我的应用程序。是否可以让麦克风(SFSpeechrecognizer)忽略 AVSpeechSynthesizer 所说的语音?Facetime 通过忽略设备播放的音乐来执行类似的操作。

我的语音转文本代码主要是修改了this

文字转语音片段如下:

let utterance = AVSpeechUtterance(string: serverResponse)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
utterance.rate = 0.1
let synthesizer = AVSpeechSynthesizer()
synthesizer.speak(utterance)
Run Code Online (Sandbox Code Playgroud)

ios swift sfspeechrecognizer swiftui

5
推荐指数
0
解决办法
156
查看次数

替换列表中的所有负值

我正试图在代码战中解决这个问题而且我完全难过了:

y = [-1, -1, 2, 8, -1, 4]
z = [1,3,5]
#to create [1,3,2,8,5,4]
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

我试着这样做:

for e in range(len(y)):
    try:
        if y[e] < 0:
            y[e] = z[e]
    except:
        pass
Run Code Online (Sandbox Code Playgroud)

但这只有在负面与z中的内容相对应时才有效.

python python-3.x

3
推荐指数
1
解决办法
658
查看次数

如何使完美的功率算法更有效?

我有以下代码:

def isPP(n):
  pos = [int(i) for i in range(n+1)]
  pos = pos[2:] ##to ignore the trivial n** 1 == n case
  y = []
  for i in pos:
      for it in pos:
          if i** it == n:
              y.append((i,it))
              #return list((i,it))
      #break
  if len(y) <1:
      return None
  else:
      return list(y[0])
Run Code Online (Sandbox Code Playgroud)

直到〜2000年才能完美运行,因为我在内存中存储的太多了.我该怎么做才能使它有效地用于大数(例如,50000或100000).在找到一个案例之后我试图让它结束,但是如果数字很大,我的算法仍然效率太低.

有小费吗?

python algorithm python-3.x

0
推荐指数
2
解决办法
2456
查看次数