github star gitee star atomgit star PyPI Downloads AI编程 AI交流群

大家好,这里是程序员晚枫,正在all in AI编程实战

第19讲:AI语音处理——让AI听懂你说的话

AI语音的两大方向

  • 语音转文字(STT):录音→文字
  • 文字转语音(TTS):文字→语音

1、安装语音库

1
pip install openai python-office

2、语音转文字(STT)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from openai import OpenAI

client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com")

# 使用OpenAI兼容的Whisper模型
with open("录音.mp3", "rb") as audio_file:
# 注意:DeepSeek不支持音频,需用其他平台
# 这里以硅基流动为例
client_silicon = OpenAI(
api_key="你的硅基Key",
base_url="https://api.siliconflow.cn/v1"
)
transcript = client_silicon.audio.transcriptions.create(
model="FunAudioLLM/SenseVoiceSmall",
file=audio_file
)

print(transcript.text)

3、文字转语音(TTS)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from openai import OpenAI

client = OpenAI(
api_key="你的硅基Key",
base_url="https://api.siliconflow.cn/v1"
)

response = client.audio.speech.create(
model="fishaudio/fish-speech-1.5",
voice="中文女声",
input="大家好,这里是程序员晚枫,欢迎来到AI编程训练营!"
)

3讲可以试听,试听链接:https://www.bilibili.com/cheese/play/ss982042944


with open("output.mp3", "wb") as f:
f.write(response.content)

print("语音已生成:output.mp3")

4、实战:会议纪要生成器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from openai import OpenAI

client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com")
client_silicon = OpenAI(
api_key="你的硅基Key",
base_url="https://api.siliconflow.cn/v1"
)

def meeting_minutes(audio_path):
# 第1步:语音转文字
with open(audio_path, "rb") as f:
transcript = client_silicon.audio.transcriptions.create(
model="FunAudioLLM/SenseVoiceSmall",
file=f
)
text = transcript.text
print(f"转录完成,共{len(text)}字")

# 第2步:AI生成会议纪要
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{
"role": "user",
"content": f"""请根据以下会议录音内容,生成会议纪要:
1. 会议主题
2. 参与者
3. 关键讨论点(3-5条)
4. 决议事项
5. 后续行动

录音内容:
{text}"""
}]
)
return response.choices[0].message.content

minutes = meeting_minutes("会议录音.mp3")
print(minutes)

5、实时语音助手

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import office

def voice_assistant():
"""简单的语音助手"""
while True:
user_input = input("请输入问题(输入'退出'结束):")
if user_input == "退出":
break

response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": user_input}]
)
answer = response.choices[0].message.content
print(f"AI:{answer}")

voice_assistant()

6、常见问题

Q:语音识别准确率不高?
A:选择好的模型,录音质量要清晰,避免背景噪音。

Q:TTS声音不自然?
A:选择高质量的语音模型,如fish-speech。

下讲预告

学会了AI语音处理,下一讲我们学 AI数据分析——让AI帮你做数据洞察。

敬请期待!


程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。